Skip to content

Instantly share code, notes, and snippets.

@hamlim
Created September 12, 2022 14:07
Show Gist options
  • Save hamlim/87f2ed3487cf327e4cb3a4188b332e71 to your computer and use it in GitHub Desktop.
Save hamlim/87f2ed3487cf327e4cb3a4188b332e71 to your computer and use it in GitHub Desktop.
class ListNode {
constructor(val = 0, next = null) {
this.value = val;
this.next = next;
}
}
let listA = new ListNode(2, new ListNode(4, new ListNode(3)));
let listB = new ListNode(5, new ListNode(6, new ListNode(4)));
function addTwoNumbers(la, lb) {
let sum = 0;
let head = new ListNode();
let res = head;
while (la || lb) {
if (la) {
sum += la.value;
la = la.next;
}
if (lb) {
sum += lb.value;
lb = lb.next;
}
let resVal = sum % 10
res.value = resVal;
sum = sum > 9 ? 1 : 0;
if (la || lb) {
let next = new ListNode();
res.next = next;
res = next
}
}
// console.log(printList(head))
// console.log(sum, res.value)
if (sum) {
// let resVal = sum % 10;
res.next = new ListNode(sum);
// res.value = resVal;
// sum = 0;
}
return head;
}
function printList(list) {
let vals = [];
while (list) {
if (list) {
vals.push(list.value);
list = list.next;
}
}
return vals;
}
console.log(printList(addTwoNumbers(listA, listB)));
let listC = new ListNode(9, new ListNode(9, new ListNode(9, new ListNode(9, new ListNode(9, new ListNode(9, new ListNode(9)))))));
let listD = new ListNode(9, new ListNode(9, new ListNode(9, new ListNode(9))));
console.log(printList(addTwoNumbers(listC, listD)));
let listE = new ListNode(0);
let listF = new ListNode(0);
console.log(printList(addTwoNumbers(listE, listF)))
//[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
//[6,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment