JSFiddle - React, Tailwind, and code Playground
by danbeam
JavaScript
function print(head) {
var tmp = head;
var data = [];
while (tmp) {
data.push(tmp.data);
tmp = tmp.next;
}
console.log(data.join(' '));
}
function add(head1, head2) {
var list = null, curr = null;
var tmp1 = head1, tmp2 = head2;
var carry = false;
while (tmp1 || tmp2) {
var val = (tmp1 ? tmp1.data : 0) + (tmp2 ? tmp2.data : 0) + carry;
var item = {data: val % 10};
if (curr) {
curr.next = item;
curr = item;
} else {
list = item;
curr = list;
}
if (tmp1)
tmp1 = tmp1.next;
if (tmp2)
tmp2 = tmp2.next;
carry = val >= 10;
}
if (carry)
curr.next = {data: 1};
return list;
}
var a = {data: 3};
a.next = {data: 1};
a.next.next = {data: 5};
var b = {data: 5};
b.next = {data: 9};
b.next.next = {data: 4};
print(a);
print(b);
print(add(a, b));