leetCode解题记录2 - 两数相加(JS, TS, PY版)

这篇博客记录了LeetCode中两数相加问题的解题过程,分别使用JavaScript(JS)、TypeScript(TS)和Python(PY)三种语言实现。作者通过详细描述解题思路,指出该问题的关键在于处理数字进位和不同长度链表的边界情况。提供的代码展示了如何逐位相加并构建新的链表来表示结果。
摘要由CSDN通过智能技术生成
  • 作者:陈大鱼头
  • 项目地址:ying-leetcode
  • 碎碎念:Mmmmm,不定期刷leetcode,会以JS TS PY的形式输出出来

题目描述

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

解题思路

其实这题比较简单,无非是两个链表之间同层级的数字相加,唯一要注意的就是如果相加之后数字大于10,需要往下一级+1,当前级数是个位的那个数字。基本也是一个循环可以解决的。再注意处理下,如果一个链表长度长于另一个链表时的边界处理,其余就没啥了。

JS版

/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
const addTwoNumbers = (l1, l2) => {
   
    let l3 = null
    let cache = 0
    let tens = 0
    while (l1 || l2) {
   
        let total = 0
        if (l1) {
   
            let l1H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值