【Leetcode】2. 两数相加

24 阅读1分钟

leetcode-2.png

这里的最低位是在左边,注意处理进位的问题
对于链表的处理,一般要返回整个链表,都要注意留下头节点,在这里是dummy,cur来指向当前处理的节点

var addTwoNumbers = function (l1, l2) {
    let carry = 0;
    let dummy = new ListNode(-1);
    let cur = dummy;
    while (l1 || l2 || carry !== 0) {
        let v1 = l1 ? l1.val : 0;
        let v2 = l2 ? l2.val : 0;
        
        let tmp = v1 + v2 + carry;
        carry = Math.floor(tmp / 10);
        cur.next = new ListNode(tmp % 10);
        cur = cur.next;
        
        if (l1) l1 = l1.next;
        if (l2) l2 = l2.next;
    }
    return dummy.next;
};