Skip to content

Commit 91c5197

Browse files
committed
Merge pull request halfrost#53 from kadefor/patch-1
精简代码
2 parents 5e6111e + 8075f06 commit 91c5197

File tree

2 files changed

+23
-46
lines changed

2 files changed

+23
-46
lines changed

leetcode/0002.Add-Two-Numbers/2. Add Two Numbers.go

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,24 @@ type ListNode = structures.ListNode
1616
*/
1717

1818
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
19-
if l1 == nil || l2 == nil {
20-
return nil
21-
}
22-
head := &ListNode{Val: 0, Next: nil}
23-
current := head
24-
carry := 0
25-
for l1 != nil || l2 != nil {
26-
var x, y int
19+
head := &ListNode{Val: 0}
20+
n1, n2, carry, current := 0, 0, 0, head
21+
for l1 != nil || l2 != nil || carry != 0 {
2722
if l1 == nil {
28-
x = 0
23+
n1 = 0
2924
} else {
30-
x = l1.Val
25+
n1 = l1.Val
26+
l1 = l1.Next
3127
}
3228
if l2 == nil {
33-
y = 0
29+
n2 = 0
3430
} 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 {
31+
n2 = l2.Val
4432
l2 = l2.Next
4533
}
46-
}
47-
if carry > 0 {
48-
current.Next = &ListNode{Val: carry % 10, Next: nil}
34+
current.Next = &ListNode{Val: (n1 + n2 + carry) % 10}
35+
current = current.Next
36+
carry = (n1 + n2 + carry) / 10
4937
}
5038
return head.Next
5139
}

website/content/ChapterFour/0002.Add-Two-Numbers.md

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -51,37 +51,26 @@ package leetcode
5151
* Next *ListNode
5252
* }
5353
*/
54+
5455
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
55-
if l1 == nil || l2 == nil {
56-
return nil
57-
}
58-
head := &ListNode{Val: 0, Next: nil}
59-
current := head
60-
carry := 0
61-
for l1 != nil || l2 != nil {
62-
var x, y int
56+
head := &ListNode{Val: 0}
57+
n1, n2, carry, current := 0, 0, 0, head
58+
for l1 != nil || l2 != nil || carry != 0 {
6359
if l1 == nil {
64-
x = 0
60+
n1 = 0
6561
} else {
66-
x = l1.Val
62+
n1 = l1.Val
63+
l1 = l1.Next
6764
}
6865
if l2 == nil {
69-
y = 0
66+
n2 = 0
7067
} else {
71-
y = l2.Val
72-
}
73-
current.Next = &ListNode{Val: (x + y + carry) % 10, Next: nil}
74-
current = current.Next
75-
carry = (x + y + carry) / 10
76-
if l1 != nil {
77-
l1 = l1.Next
78-
}
79-
if l2 != nil {
68+
n2 = l2.Val
8069
l2 = l2.Next
8170
}
82-
}
83-
if carry > 0 {
84-
current.Next = &ListNode{Val: carry % 10, Next: nil}
71+
current.Next = &ListNode{Val: (n1 + n2 + carry) % 10}
72+
current = current.Next
73+
carry = (n1 + n2 + carry) / 10
8574
}
8675
return head.Next
8776
}

0 commit comments

Comments
 (0)