function ListNode(val, next) {
this.val = (val===undefined ? 0 : val)
this.next = (next===undefined ? null : next)
}
function ArrayToLinkList(ary){
if(ary.length <=0)
return null;
let outputNode = new ListNode();
const headNode = outputNode;
for(let el of ary){
let currentNode = new ListNode(el);
outputNode.next = currentNode;
outputNode = currentNode;
}
return headNode.next;
}
let l1 = ArrayToLinkList([9,9,9,9,9,9,9]);
let l2 = ArrayToLinkList([9,9,9,9]);
var addTwoNumbers = function(l1, l2) {
let carry = 0;
let outputAry = [];
while(l1 || l2 || carry){
let val1 = 0;
let val2 = 0;
if(l1){
val1 = l1.val;
l1 = l1.next;
}
if(l2){
val2 = l2.val;
l2 = l2.next;
}
const sum = val1+val2+carry;
carry = Math.floor(sum/10);
const digit = sum % 10;
outputAry.push(digit);
}
return ArrayToLinkList(outputAry);
};
console.log(addTwoNumbers(l1,l2));