
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
if not l1:
return l2
if not l2:
return l1
#主要还是维护一个进位
carry = 0
dummpy = ListNode(0)
pre = dummpy
while l1 or l2:
x = l1.val if l1 else 0
y = l2.val if l2 else 0
Sum = x+y+carry
carry = Sum//10
node = ListNode(Sum%10)
pre.next = node
pre = pre.next
if l1:
l1 = l1.next
if l2:
l2 = l2.next
if carry>0:
pre.next = ListNode(carry)
return dummpy.next
- 两个链表中的数字相加维护一个进位即可
- 还要处理最后一个进位