天天看點

**兩數相加(leetcode)

兩數相加

給出兩個 非空 的連結清單用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,并且它們的每個節點隻能存儲 一位 數字。

如果,我們将這兩個數相加起來,則會傳回一個新的連結清單來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

注意:最後一位進位,啞結點

//2020.4.25 9:41
var addTwoNumbers = function(l1, l2) {
    let list = new ListNode(null);
    let temp = list;
    let carry = 0;
    let n = l1.val;
    let m = l2.val;
    let sum;
    while(l1||l2||carry){
     n = l1 ? l1.val : 0;
    m = l2 ? l2.val : 0;
    sum = n + m + carry;
    if (sum > 9) {
      temp.next = new ListNode(sum % 10)
      carry = 1
    } else {
      temp.next = new ListNode(sum)
      carry = 0
    }
    if(l1) l1 = l1.next;
    if(l2) l2 = l2.next;
    temp = temp.next;
    }
    return list.next;
};