原题:两数相加 II
使用栈,其它与两数相加(golang)类似
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
// 使用栈,使用头插法返回链表
ret := new(ListNode)
s1 := []int{}
s2 := []int{}
for l1 != nil || l2 != nil {
if l1 != nil {
s1 = append(s1, l1.Val)
l1 = l1.Next
}
if l2 != nil {
s2 = append(s2, l2.Val)
l2 = l2.Next
}
}
i1, i2 := len(s1),len(s2)
sum := 0
for i1> 0 || i2 > 0 || sum > 0{
n := new(ListNode)
if i1 > 0 {
i1 --
sum += s1[i1]
}
if i2 > 0 {
i2 --
sum += s2[i2]
}
n.Val = sum % 10
sum /= 10
n.Next = ret.Next
ret.Next = n
}
return ret.Next
}
有疑问加站长微信联系(非本文作者)