""" 两数相加 """ from typing import List, Optional class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: """ 链表遍历 :param l1: :param l2: :return: """ res = ListNode(0) cur = res carry = 0 while l1 or l2: x = l1.val if l1 else 0 y = l2.val if l2 else 0 s = x + y + carry carry = s // 10 cur.next = ListNode(s % 10) cur = cur.next if l1: l1 = l1.next if l2: l2 = l2.next if carry: cur.next = ListNode(carry) return res.next if __name__ == '__main__': l1 = ListNode(2) l1.next = ListNode(4) l1.next.next = ListNode(3) l2 = ListNode(5) l2.next = ListNode(6) l2.next.next = ListNode(4) result = Solution().addTwoNumbers(l1, l2) while result: print(result.val, end=' -> ') result = result.next