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

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

QJ2 LeetCode - 两数相加

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

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

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

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

解法1牺牲了头节点

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

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

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

解法1:

QJ2 LeetCode - 两数相加

解法2:

QJ2 LeetCode - 两数相加

QJ2 LeetCode - 两数相加

最佳解法:

QJ2 LeetCode - 两数相加


相关文章:

  • 2021-07-23
  • 2021-04-23
  • 2021-11-25
  • 2021-06-01
  • 2021-06-10
  • 2021-09-08
  • 2021-08-14
  • 2022-02-05
猜你喜欢
  • 2021-11-15
  • 2021-09-18
  • 2021-08-02
  • 2022-03-05
  • 2021-08-29
  • 2022-12-23
  • 2021-11-11
相关资源
相似解决方案