diff --git a/work/1/Medium/Linked List/2.add-two-numbers.py b/work/1/Medium/Linked List/2.add-two-numbers.py index 47b5385..96f789f 100644 --- a/work/1/Medium/Linked List/2.add-two-numbers.py +++ b/work/1/Medium/Linked List/2.add-two-numbers.py @@ -53,9 +53,18 @@ class Solution: def addTwoNumbers( self, l1: Optional[ListNode], l2: Optional[ListNode] ) -> Optional[ListNode]: - head = ListNode() + + dummy = ListNode() carry = 0 - l1curr = head - l2curr = head - while head: - l1.val + l2.val + curr = dummy + while l1 or l2 or carry: + s = (l1.val if l1 else 0) + (l2.val if l2 else 0) + carry + carry, val = divmod(s, 10) + + curr.next = ListNode(val) + curr = curr.next + + l1 = l1.next if l1 else None + l2 = l2.next if l2 else None + + return dummy.next