题解 | #链表相加(二)#
链表相加(二)
https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ func addInList(head1 *ListNode, head2 *ListNode) *ListNode { sta1 := make([]*ListNode, 0) sta2 := make([]*ListNode, 0) top1, top2 := 0, 0 p, q := head1, head2 for p != nil { sta1 = append(sta1, p) p = p.Next top1++ } for q != nil { sta2 = append(sta2, q) q = q.Next top2++ } c := 0 var r *ListNode for i, j := top1-1, top2-1; i >= 0 || j >= 0; { val := c if i >= 0 { val += sta1[i].Val i-- } if j >= 0 { val += sta2[j].Val j-- } c = 0 if val >= 10 { val -= 10 c = 1 } if r == nil { r = &ListNode{val, nil} } else { r = &ListNode{val, r} } } if c > 0 { if r == nil { r = &ListNode{c, nil} } else { r = &ListNode{c, r} } } return r }