LeetCode两数相加(Python)

题目:

LeetCode两数相加(Python)

解题思路:

因为题目定义好了单向链表(如下图),可以看出只能以头节点到尾节点的固定顺序访问,加数以倒序存储,所以感觉直接相加就可以,类似加法中的列竖式相加的做法。
LeetCode两数相加(Python)
在网页提交的代码如图所示:
LeetCode两数相加(Python)LeetCode两数相加(Python)
感觉写的很直,不需要注释也能看懂,要说的两点就是:第一,l3_list想的是先得到结果的列表形式再去转换成单链表,第二就是要注意一种比较特殊的情况,[1] + [9, 9] = [0, 0, 1]。

执行结果为:
LeetCode两数相加(Python)

然后看了一下评论区和大神们的解决方案,思路差不多,于是把自己的代码浓缩了一下:
LeetCode两数相加(Python)
写法上其实就是将我前三个if归纳了一下,更加清晰简洁了(写的时候让我感觉像是在写C),然而执行结果并没有什么差别:
LeetCode两数相加(Python)
最后放上评论区rank1的大神代码来膜拜一下:
LeetCode两数相加(Python)
LeetCode两数相加(Python)
思路上完全一致,上面代码看懂了这个一遍就能看懂,而且写的很python,学习!