给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
1 |
|
1 |
|
思路一
直接一位一位相加,新产生的结果节点暂时存放进位,注意两个链表的长度可能不一样,所以需要再单独判断每个链表是否到结尾。注意结果尾结点值不能为0。
1 |
|
思路二
在一个循环里完成思路一里的操作,使用空的头指针方便操作。
1 |
|
思路三
先将两个链表分别转换成整数,然后相加,再将结果转换成链表。使用迭代的思想实现。
1 |
|
使用循环实现tolist
1 |
|
Note
- Python 中
a=b=c
语句的执行顺序:a=c, b=a
,以此类推; - 链表空头指针的应用;
- 注意链表结点为空的边界条件判断。