QJ2 LeetCode - 两数相加

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

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

1. 两个链表节点指针,一个指向头结点,一个随着位相加不断向后移动

2. 位相加时,加上进位位

3. 当前节点next指向下一个生成的节点;当前操作节点变成下一个节点

4. 最后进位如果为1,还要再生成一个节点

解法1牺牲了头节点

解法2先单独求头节点,再求后面所有节点;部分功能相同的代码写了2遍(重复)

最佳解法循环的判断条件多了一个:carry!=0,从而把上面第4步合在一起写了;节点相连时,

                    注意拎出头节点(判断条件 tmp == 0)

解法1:

解法2:

最佳解法:



猜你喜欢

转载自blog.csdn.net/Eartha1995/article/details/80950630