给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 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
};