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))