2. Add Two Numbers
1# Definition for singly-linked list.
2# class ListNode:
3# def __init__(self, val=0, next=None):
4# self.val = val
5# self.next = next
6class Solution:
7 def addTwoNumbers(
8 self, l1: Optional[ListNode], l2: Optional[ListNode]
9 ) -> Optional[ListNode]:
10 result = ListNode()
11 node = result
12 carry = 0
13 prev = None
14
15 while l1 and l2:
16 add = l1.val + l2.val + carry
17 if add >= 10:
18 carry = 1
19 add -= 10
20 else:
21 carry = 0
22 node.val = add
23 node.next = ListNode()
24 prev = node
25 node = node.next
26
27 l1 = l1.next
28 l2 = l2.next
29
30 while l1:
31 add = l1.val + carry
32 if add >= 10:
33 carry = 1
34 add -= 10
35 else:
36 carry = 0
37 node.val = add
38 node.next = ListNode()
39 prev = node
40 node = node.next
41
42 l1 = l1.next
43
44 while l2:
45 add = l2.val + carry
46 if add >= 10:
47 carry = 1
48 add -= 10
49 else:
50 carry = 0
51 node.val = add
52 node.next = ListNode()
53 prev = node
54 node = node.next
55
56 l2 = l2.next
57
58 if carry:
59 node.val = 1
60 node.next = None
61 else:
62 prev.next = None
63
64 return result
dummy head helps.
1# Definition for singly-linked list.
2# class ListNode:
3# def __init__(self, val=0, next=None):
4# self.val = val
5# self.next = next
6class Solution:
7 def addTwoNumbers(
8 self, l1: Optional[ListNode], l2: Optional[ListNode]
9 ) -> Optional[ListNode]:
10 dummy_head = ListNode()
11 node = dummy_head
12 carry = 0
13
14 while l1 and l2:
15 add = l1.val + l2.val + carry
16 if add >= 10:
17 carry = 1
18 add -= 10
19 else:
20 carry = 0
21 node.next = ListNode(add)
22 node = node.next
23
24 l1 = l1.next
25 l2 = l2.next
26
27 while l1:
28 add = l1.val + carry
29 if add >= 10:
30 carry = 1
31 add -= 10
32 else:
33 carry = 0
34 node.next = ListNode(add)
35 node = node.next
36
37 l1 = l1.next
38
39 while l2:
40 add = l2.val + carry
41 if add >= 10:
42 carry = 1
43 add -= 10
44 else:
45 carry = 0
46 node.next = ListNode(add)
47 node = node.next
48
49 l2 = l2.next
50
51 if carry:
52 node.next = ListNode(carry)
53
54 return dummy_head.next
#Neetcode150 #Linked-List #Python