mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
精简代码
This commit is contained in:
@ -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
|
||||
}
|
||||
if l2 == nil {
|
||||
y = 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 {
|
||||
n1 = l1.Val
|
||||
l1 = l1.Next
|
||||
}
|
||||
if l2 != nil {
|
||||
if l2 == nil {
|
||||
n2 = 0
|
||||
} else {
|
||||
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
|
||||
}
|
||||
|
Reference in New Issue
Block a user