题目大意
给定两个链表分别代表两个非负整数。数位以倒序存储,并且每一个节点包含一位数字。将两个数字相加并以链表形式返回。
解题思路
链表简单相加,到10进位
代码
根据书影博客
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
总结
- val 和 next 的理解
- 哑节点: l = dummy