Add Two Numbers II LeetCode solution in JavaScript

1
var addTwoNumbers = function (l1, l2) {
2
const reverse = (head) => {
3
let prev = null;
4
let dummy = head;
5

6
while (dummy) {
7
let temp = dummy.next;
8
dummy.next = prev;
9
prev = dummy;
10
dummy = temp;
11
}
12
return prev;
13
};
14

15
let head1 = reverse(l1);
16
let head2 = reverse(l2);
17

18
// add
19
let sum = new ListNode();
20
let p = sum;
21
let carry = 0;
22

23
while ((head1 && head2) || carry) {
24
let v1 = head1 ? head1.val : 0;
25
let v2 = head2 ? head2.val : 0;
26
let v = v1 + v2 + carry;
27

28
if (v >= 10) carry = 1;
29
else carry = 0;
30

31
let node = new ListNode(v % 10);
32

33
sum.next = node;
34
sum = sum.next;
35
head1 = head1 && head1.next;
36
head2 = head2 && head2.next;
37
}
38
sum.next = head1 || head2;
39
return reverse(p.next);
40
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0