首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    leetcode:2 两数相加

    因为js中没有链表的操作,所以通过Object来做。 作用是存储想加后的链表哈。 const q=new ListNode(0); 问题? 0是什么意思? 没有什么意思?...在相加操作上没有价值把。 如何遍历两个链表? 两个指针。 let p1=l1; let p2=l2; let p3=q; 第三个指针是新建的链表,相同的位想加后是要存储的。...carry=Math.floor(val/10); 放到相加的操作上. const val=v1+v2+carry; 然后是把个位上的数加到新链表上。...carry=Math.floor(val/10); p3.next=new ListNode(val%10); 这两句第一个是截图十位,等到下一次循环在下位相加所以不管它了。...p3=p3.next; 然后新建的相加后的指针也进1. 然后是问题: 最后时候的链表如果超过9怎么办? 进1啊。

    36910

    2. 两数相加

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。...思路 设立一个表示进位的变量carried,建立一个新链表, 把输入的两个链表从头往后同时处理,每两个相加,将结果加上carried后的值作为一个新节点到新链表后面。 ?...(图片来自:https://github.com/MisterBooo/LeetCodeAnimation) 关键点解析 链表这种数据结构的特点和使用 用一个carried变量来实现进位的功能,每次相加之后计算...carried,并用于下一位的计算 代码 语言支持:JS,C++ JavaScript: /** * Definition for singly-linked list...描述 将两个链表的第一个节点值相加,结果转为0-10之间的个位数,并设置进位信息 将两个链表第一个节点以后的链表做带进位的递归相加 将第一步得到的头节点的next指向第二步返回的链表 C++实现 //

    96810

    LeetCode | 2.两数相加

    这次来写一下 LeetCode 的第 2 题,两数相加。 题目描述 题目直接从 LeetCode 上截图过来,题目如下: ?...上面的题就是 两数相加 题目的截图,同时 LeetCode 会根据选择的语言给出了一个类的定义或者函数的定义,然后在其中实现 两数相加 的解题过程。这次我使用 C 语言来进行完成。...只要使链表的指针逐步的移动,并使指针所指向的节点中的值进行相加相加后判断是否产生进位,如果产生进位则记录下进位的值,把进位后剩下的个位数写入链表的节点,进位的值与当前节点的下对节点相加时同时参与运算即可...链表最后的一对节点相加后也可能会产生进位,因此在循环相加后,需要判断是否产生了进位,如果有进位需要为这个进位一个单独的节点链到链表的结尾处。...{ if (l1 == NULL) { return l2; } if (l2 == NULL) { return l1; }

    33320

    LeetCode-2-两数相加

    # LeetCode-2-两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。...: 两个链表长度一致 两个链表长度一长一短 两个链表在相加过程中产生进位,进位需要加在下一位 特例判断,当l1为空,直接返回l2;当l2为空,直接返回l1 新增l1,l2的指针t1,t2,方便链表的遍历...;新增l3哑结点和对应指针t3,用于存储相加之后的链表 相加流程: 当两个链表其中一个不为空的时候,说明还没有加完; 由于相加的过程中,链表会出现一长一短的情况,所以在其中一个链表遍历完成之后,他的next...就为空了,没有val值 我们可以将后续空的链表的值默认为0,这样在相加的时候就不会对后续没有遍历完的链表产生影响 所以对于t1,t2两个链表而言,他们的当前节点值是多少,可以由如下判断: int x =...t3.next = new ListNode(sum); 顺序移动t1,t2,t3,其中当t1,t2为空的时候就不再需要移动了,只需要下次用0相加即可 新增进位节点:如果最后遍历完毕仍然有进位,那么尾节点就是最后以进位为值的节点

    15020

    LeetCode-2 两数相加

    今天学习第2题两数相加,这个题目特别经典,经常在面试中出现,如果面临秋招或春招的小伙伴们最好在面试前将该题能够手写出来。...然后两个链表的对应位置上的数字相加,将相加的值保存到结果链表中。这里需要注意两个关键点:一是如果两个值相加大于9该怎么办?二是两个链表长度不一致该怎么办?...对于关键点二:我们以最长链表作为终点,对于较短链表对应位置的数值,我们用0来补齐。 下面分析一个具体实例,该实例包含上述两个关键点,如下图所示: ?...0 : l1.val; int d2 = (l2 == null) ?...Github地址 LeetCode-2 两数相加:https://github.com/JacobLei/leetcode/blob/master/src/main/java/A2_AddTwoNumbers.java

    46040
    领券