2. 两数相加
NC40 两个链表生成相加链表
输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.
//时间On,空间O1
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
dummy := &ListNode{} //dummy := new(ListNode)
cur := dummy
sum := 0
for (l1 != nil || l2 != nil || carry > 0) {
cur.Next = &ListNode{} //哨兵节点dummy,实操节点cur
cur = cur.Next //这两句容易写错,是cur.Next
if l1 != nil {
sum += l1.Val
l1 = l1.Next
}
if l2 != nil {
sum += l2.Val
l2 = l2.Next
}
cur.Val = sum % 10 //是cur.Val,不是sum
sum /= 10
}
return dummy.Next
}