Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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-
ifcarry>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)

AltStyle によって変換されたページ (->オリジナル) /