两数相加(Add-Two-Numbers)
这是 LeetCode 的第二题,题目挺常规的,题干如下:
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
来源:力扣
解题思路
这个题目的解法类似我们小时候算两个多位数的加法:从低位开始相加,大于等于10时则取值的个位数,并向前进1。
![b2a9c80d7c5401e0ac1c3b680b1cd153.png](https://img-blog.csdnimg.cn/img_convert/b2a9c80d7c5401e0ac1c3b680b1cd153.png)
只不过现在多位数用链表来表示了并且最后的值用链表返回了而已。
根据上面这个思路需要注意的是进位( carry ),相加的时要加上 carry 的值。
实现流程
假设我们有两条链表L1和L2<