35 lines
516 B
Go
35 lines
516 B
Go
package q2
|
|
|
|
type ListNode struct {
|
|
Val int
|
|
Next *ListNode
|
|
}
|
|
|
|
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
|
|
retRoot := &ListNode{}
|
|
|
|
p := retRoot
|
|
carry := 0
|
|
for l1 != nil || l2 != nil {
|
|
val := carry
|
|
if l1 != nil {
|
|
val += l1.Val
|
|
l1 = l1.Next
|
|
}
|
|
if l2 != nil {
|
|
val += l2.Val
|
|
l2 = l2.Next
|
|
}
|
|
|
|
carry, val = val/10, val%10
|
|
node := &ListNode{Val: val}
|
|
p.Next = node
|
|
p = node
|
|
}
|
|
if carry > 0 {
|
|
p.Next = &ListNode{Val: carry}
|
|
}
|
|
return retRoot.Next
|
|
}
|
|
|
|
var _ = addTwoNumbers
|