File tree Expand file tree Collapse file tree 1 file changed +13
-22
lines changed
leetcode/0002.Add-Two-Numbers Expand file tree Collapse file tree 1 file changed +13
-22
lines changed Original file line number Diff line number Diff line change @@ -16,36 +16,27 @@ type ListNode = structures.ListNode
16
16
*/
17
17
18
18
func addTwoNumbers (l1 * ListNode , l2 * ListNode ) * ListNode {
19
- if l1 == nil || l2 == nil {
20
- return nil
21
- }
22
- head := & ListNode {Val : 0 , Next : nil }
19
+ head := & ListNode {Val : 0 }
23
20
current := head
24
- carry := 0
25
- for l1 != nil || l2 != nil {
26
- var x , y int
21
+
22
+ var n1 , n2 , carry int
23
+ for l1 != nil || l2 != nil || carry != 0 {
27
24
if l1 == nil {
28
- x = 0
25
+ n1 = 0
29
26
} else {
30
- x = l1 .Val
27
+ n1 = l1 .Val
28
+ l1 = l1 .Next
31
29
}
32
30
if l2 == nil {
33
- y = 0
31
+ n2 = 0
34
32
} else {
35
- y = l2 .Val
36
- }
37
- current .Next = & ListNode {Val : (x + y + carry ) % 10 , Next : nil }
38
- current = current .Next
39
- carry = (x + y + carry ) / 10
40
- if l1 != nil {
41
- l1 = l1 .Next
42
- }
43
- if l2 != nil {
33
+ n2 = l2 .Val
44
34
l2 = l2 .Next
45
35
}
36
+ current .Next = & ListNode {Val : (n1 + n2 + carry ) % 10 }
37
+ current = current .Next
38
+ carry = (n1 + n2 + carry ) / 10
46
39
}
47
- if carry > 0 {
48
- current .Next = & ListNode {Val : carry % 10 , Next : nil }
49
- }
40
+
50
41
return head .Next
51
42
}
You can’t perform that action at this time.
0 commit comments