LeetCode之两数相加

LeetCode(2)

// 两数相加,用链表表示  2->4->3   +  5->6->4  = 7->0->8  342+465=807
function ListNode(val) {
    this.val = val;
    this.next = null;
}

function addTwoNumber(v1, v2) {
    let Node = new ListNode('head');
    let temp = Node;
    let add = 0;//表示进位
    let sum = 0;//表示v1.val+v2.val+add

    while (v1 || v2) {
        sum = (v1 ? v1.val : 0) + (v2 ? v2.val : 0) + add; //两个元素相加的和
        temp.next = new ListNode(sum % 10); //创建一个新的节点保存
        temp = temp.next;
        add = sum >= 10 ? 1 : 0;
        v1 && (v1 = v1.next);
        v2 && (v2 = v2.next);
    }
    add && (temp.next = new ListNode(add)); //如果最后的两个元素相加超过十,则要向前进一位
    return Node.next;
}

你可能感兴趣的:(Leetcode,js)