function ReverseList(head)
{
if (head === null) return head;
let curr = head;
let pre = null;
let next = null;
while (curr) {
next = curr.next;
curr.next = pre;
pre = curr;
curr = next;
}
head = pre;
return head;
}
function addInList( head1 , head2 ) {
// 链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。
if (head1 === null) return head2;
if (head2 === null) return head1;
let l1 = ReverseList(head1);
let l2 = ReverseList(head2);
let dummy = new ListNode(-1);
let p = dummy;
let carry = 0;
while (l1 || l2) {
let sum = carry;
if (l1) {
sum += l1.val
l1 = l1.next;
}
if (l2) {
sum += l2.val
l2 = l2.next;
}
carry = Math.floor(sum / 10);
let val = sum % 10;
p.next = new ListNode(val);
p = p.next;
}
if (carry > 0) p.next = new ListNode(carry);
return ReverseList(dummy.next);
}