JSFiddle - React, Tailwind, and code Playground
by Kai Wang
JavaScript
function ListNode(val) {
this.val = val;
this.next = null;
}
var addTwoNumbers = function(l1, l2) {
let result = new ListNode(-1);
let answer = result;
let sum = 0;
let carry = 0;
while(l1 || l2 || carry) {
sum = carry;
if(l1) {
sum += l1.val;
l1 = l1.next;
}
if(l2) {
sum += l2.val;
l2 = l2.next;
}
if(sum >= 10) {
carry = 1;
result.next = new ListNode(sum - 10);
result = result.next;
} else {
carry = 0;
result.next = new ListNode(sum);
result = result.next;
}
// console.log(result);
}
return answer.next;
};
var addTwoNumbers1 = function(l1, l2) {
let result = new ListNode(-1);
let answer = result;
let carry = 0;
while(l1 || l2) {
let x = l1?l1.val: 0;
let y = l2?l2.val: 0;
let sum = x + y + carry;
carry = Math.floor(sum/10);
result.next = new ListNode(sum%10)
result = result.next;
if(l1) {
l1 = l1.next;
}
if(l2) {
l2 = l2.next;
}
if(carry > 0) {
carry = 1;
result.next = new ListNode(carry);
}
// console.log(result);
}
return answer.next;
};
var a = new ListNode(3);
a.next = new ListNode(6);
a.next.next = new ListNode(4);
var b = new ListNode(2);
b.next = new ListNode(7);
b.next.next = new ListNode(3);
var c = addTwoNumbers1(a,b);
console.log(c)