diff --git a/work/1/Medium/Linked List/2.add-two-numbers.py b/work/1/Medium/Linked List/2.add-two-numbers.py new file mode 100644 index 0000000..47b5385 --- /dev/null +++ b/work/1/Medium/Linked List/2.add-two-numbers.py @@ -0,0 +1,61 @@ +""" +2. Add Two Numbers +Difficulty: Medium +https://leetcode.com/problems/add-two-numbers/ + +────────────────────────────────────────────────── + +You are given two non-empty linked lists representing two +non-negative integers. The digits are stored in reverse order, and +each of their nodes contains a single digit. Add the two numbers and +return the sum as a linked list. + +You may assume the two numbers do not contain any leading zero, +except the number 0 itself. + + + +Example 1: + +Input: l1 = [2,4,3], l2 = [5,6,4] +Output: [7,0,8] +Explanation: 342 + 465 = 807. + +Example 2: + +Input: l1 = [0], l2 = [0] +Output: [0] + +Example 3: + +Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] +Output: [8,9,9,9,0,0,0,1] + + + +Constraints: + + • The number of nodes in each linked list is in the range [1, 100]. + + • 0 <= Node.val <= 9 + +• It is guaranteed that the list represents a number that does not +have leading zeros. +""" + + +# 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: Optional[ListNode], l2: Optional[ListNode] + ) -> Optional[ListNode]: + head = ListNode() + carry = 0 + l1curr = head + l2curr = head + while head: + l1.val + l2.val