【Leetcode】【python】Add Two Numbers 两数相加

题目大意

给定两个链表分别代表两个非负整数。数位以倒序存储,并且每一个节点包含一位数字。将两个数字相加并以链表形式返回。

解题思路

链表简单相加,到10进位

代码

根据书影博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
dummy= ListNode(0)
l = dummy
jinwei = 0
while l1 or l2 or jinwei:
sum, jinwei = jinwei, 0
if l1:
sum += l1.val
l1 = l1.next
if l2:
sum += l2.val
l2 = l2.next
if sum > 9: # 需要进位
jinwei = 1
sum -= 10
l.next = ListNode(sum)
l = l.next
return dummy.next

总结

  1. val 和 next 的理解
  2. 哑节点: l = dummy