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)