JSFiddle - React, Tailwind, and code Playground

by Steven Senkus

JavaScript

/**
 * Definition for singly-linked list.
 */
function ListNode(val) {
    this.val = val;
    this.next = null;
}

/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {

    let num1 = extract(l1);
    let num2 = extract(l2);

    return convertNumToLinkedList(num1 + num2);

    function extract(ll) {
        let list = [];
        let currentListItem = ll;
        while (true) {
            console.log('cur', currentListItem);
            list.unshift(currentListItem.val);
            currentListItem = currentListItem.next;

            if (currentListItem.next === null) {
                list.unshift(currentListItem.val);
                break;
            }
        }
        return parseInt(list.join(''));
    }
    
    function convertNumToLinkedList(num) {
    	let numString = (num + "");
        numString = numString.split('').reverse().join('');
        let ll = new ListNode(parseInt(numString[0]));
        
        let currentNode = ll;
        for (let i = 1; i < numString.length; i++) {
        	console.log(numString[i]);
        	currentNode.next = new ListNode(parseInt(numString[i]));
            currentNode = currentNode.next;
        }
        return ll;
    }
};

let l1 = new ListNode(2);
l1.next = new ListNode(4);
l1.next.next = new ListNode(3);

let l2 = new ListNode(5);
l2.next = new ListNode(6);
l2.next.next = new ListNode(4);



console.log(addTwoNumbers(l1, l2))