原题: 两数相加
关联:两数相加 II(golang)
从低位加起,注意进位,且最后进位完的链表可能比l1,l2中最长的更长。
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
// h表示进位,为低位相加/10的值取整
retHead := new(ListNode)
p := retHead
h := 0
for l1 != nil || l2 != nil || h > 0{
if l1 != nil {
h += l1.Val
l1 = l1.Next
}
if l2 != nil {
h += l2.Val
l2 = l2.Next
}
// 和为h的余数
p.Next = new(ListNode)
p = p.Next
p.Val = h%10
h /= 10
}
return retHead.Next
}
有疑问加站长微信联系(非本文作者)