[路飞]leetcode-445.两数相加 II

102 阅读1分钟

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。力扣原文

示例1:

输入:l1 = [7,2,4,3], l2 = [5,6,4]
输出:[7,8,0,7]

示例2:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[8,0,7]

示例3:

输入:l1 = [0], l2 = [0]
输出:[0]

 

示例 1:

输入:head = [1,2,3,4]
输出:[1,4,2,3]

示例 2:

输入:head = [1,2,3,4,5]
输出:[1,5,2,4,3]

 

示例 1:

输入:head = [1,2,3,4]
输出:[1,4,2,3]

示例 2:

输入:head = [1,2,3,4,5]
输出:[1,5,2,4,3]
var addTwoNumbers = function(l1, l2) {
    let stack1=[],stack2=[],cur=l1;
    let head=new ListNode(-1)
    while(cur){
        stack1.push(cur.val)
        cur=cur.next
    }
    cur=l2
    while(cur){
        stack2.push(cur.val)
        cur=cur.next;
    }
    var ten=0;
    while(stack1.length||stack2.length||ten){
        let num1=stack1.pop()||0
        let num2=stack2.pop()||0    
        let result=num1+num2+ten;
        ten=result/10|0
        let newNode=new ListNode(result%10,head.next)
        head.next=newNode

    }
    return head.next
};