题解 | #链表相加(二)#
链表相加(二)
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 { rl1, rl2 := reverse(head1), reverse(head2) newHead := &ListNode{} cur := newHead plus := 0 for rl1 != nil || rl2 != nil { node := &ListNode{Val: plus} if rl1 != nil { node.Val += rl1.Val rl1 = rl1.Next } if rl2 != nil { node.Val += rl2.Val rl2 = rl2.Next } plus = node.Val/10 node.Val %= 10 cur.Next = node cur = cur.Next } if plus > 0 { cur.Next = &ListNode{Val: plus} } return reverse(newHead.Next) } func reverse(head *ListNode) *ListNode { var pre *ListNode cur := head for cur != nil { nxt := cur.Next cur.Next = pre pre = cur cur = nxt } return pre }