From 8075f0696f886f8acf3a64f9bb6685410c80a63b Mon Sep 17 00:00:00 2001 From: Kade Date: Sun, 23 Aug 2020 00:00:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2. Add Two Numbers.go | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/leetcode/0002.Add-Two-Numbers/2. Add Two Numbers.go b/leetcode/0002.Add-Two-Numbers/2. Add Two Numbers.go index 5854bf659..714823d7a 100644 --- a/leetcode/0002.Add-Two-Numbers/2. Add Two Numbers.go +++ b/leetcode/0002.Add-Two-Numbers/2. Add Two Numbers.go @@ -16,36 +16,27 @@ type ListNode = structures.ListNode */ func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode { - if l1 == nil || l2 == nil { - return nil - } - head := &ListNode{Val: 0, Next: nil} + head := &ListNode{Val: 0} current := head - carry := 0 - for l1 != nil || l2 != nil { - var x, y int + + var n1, n2, carry int + for l1 != nil || l2 != nil || carry != 0 { if l1 == nil { - x = 0 + n1 = 0 } else { - x = l1.Val + n1 = l1.Val + l1 = l1.Next } if l2 == nil { - y = 0 + n2 = 0 } else { - y = l2.Val - } - current.Next = &ListNode{Val: (x + y + carry) % 10, Next: nil} - current = current.Next - carry = (x + y + carry) / 10 - if l1 != nil { - l1 = l1.Next - } - if l2 != nil { + n2 = l2.Val l2 = l2.Next } + current.Next = &ListNode{Val: (n1 + n2 + carry) % 10} + current = current.Next + carry = (n1 + n2 + carry) / 10 } - if carry > 0 { - current.Next = &ListNode{Val: carry % 10, Next: nil} - } + return head.Next }