# 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:
AllNode = new_l = ListNode() # 初始化Node会多出一个空的Node
carry = 0
while l1 or l2 or carry:
new_node = ListNode() # 新Node节点
if not l1 and l2:
val = l2.val + carry
new_node.val = val % 10
carry = val // 10
l2 = l2.next
elif l1 and not l2:
val = l1.val + carry
new_node.val = val % 10
carry = val // 10
l1 = l1.next
elif not l1 and not l2 and carry:# 可能存在carry末位进位
new_node.val = carry
carry = 0
else:
val = l1.val + l2.val + carry
new_node.val = val % 10
carry = val // 10
l1 = l1.next
l2 = l2.next
new_l.next = new_node
new_l = new_l.next
return AllNode.next # 返回除第一位的其余链表
```
Leetcode | 2.两数相加
最新推荐文章于 2024-09-12 11:03:37 发布