给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出:7 -> 0 -> 8
    原因:342 + 465 = 807

    1. /**
    2. * Definition for singly-linked list.
    3. * function ListNode(val) {
    4. * this.val = val;
    5. * this.next = null;
    6. * }
    7. */
    8. /**
    9. * @param {ListNode} l1
    10. * @param {ListNode} l2
    11. * @return {ListNode}
    12. */
    13. var addTwoNumbers = function(l1, l2) {
    14. let node = new ListNode('head')
    15. let temp = node , sum , n = 0
    16. while( l1 || l2 ){
    17. const n1 = l1 ? l1.val : 0
    18. const n2 = l2 ? l2.val : 0
    19. sum = n1 + n2 + n
    20. temp.next = new ListNode( sum % 10 )
    21. temp = temp.next
    22. n = parseInt( sum / 10 )
    23. if(l1) l1 = l1.next
    24. if(l2) l2 = l2.next
    25. }
    26. if( n > 0 ) temp.next = new ListNode(n)
    27. return node.next
    28. };
    • 逆序加法,向后进一
    • let node = new ListNode(‘head’) 来规范链表的操作