Skip to content

Commit aeb0516

Browse files
committed
Added 2. Add Two Numbers
1 parent add074d commit aeb0516

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

Diff for: 2. Add Two Numbers.js

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* function ListNode(val, next) {
4+
* this.val = (val===undefined ? 0 : val)
5+
* this.next = (next===undefined ? null : next)
6+
* }
7+
*/
8+
9+
/**
10+
* @param {ListNode} l1
11+
* @param {ListNode} l2
12+
* @return {ListNode}
13+
*/
14+
15+
/**
16+
Runtime: 136 ms, faster than 61.77% of JavaScript online submissions for Add Two Numbers.
17+
Memory Usage: 46.8 MB, less than 15.00% of JavaScript online submissions for Add Two Numbers.
18+
*/
19+
20+
var addTwoNumbers = function(l1, l2) {
21+
let head = new ListNode();
22+
let curr = head;
23+
let extra = 0;
24+
while (l1 || l2) {
25+
let l1Val = l1 ? l1.val : 0;
26+
let l2Val = l2 ? l2.val : 0;
27+
let sum = l1Val + l2Val + extra
28+
extra = sum > 9 ? 1 : 0;
29+
if (l1) {
30+
l1.val = sum % 10;
31+
curr.next = l1;
32+
} else {
33+
l2.val = sum % 10;
34+
curr.next = l2;
35+
}
36+
curr = curr.next;
37+
if (l1) l1 = l1.next;
38+
if (l2) l2 = l2.next;
39+
}
40+
if (extra > 0) {
41+
curr.next = new ListNode(1);
42+
}
43+
return head.next;
44+
};
45+
46+
/** First Try
47+
* - Didn't work because logic flawed
48+
* - Input: [1, 0, 0 ,1], [3, 4]
49+
* - Expected Output: [1, 0, 3, 5]
50+
* - Actual Output: [4, 4, 0, 1]
51+
*/
52+
53+
var addTwoNumbers = function(l1, l2) {
54+
let sum = 0;
55+
let m = 0;
56+
let runner = l1;
57+
while (runner) {
58+
sum += (runner.val * Math.pow(10, m));
59+
runner = runner.next;
60+
m++;
61+
}
62+
console.log(sum);
63+
runner = l2, m = 0;
64+
while (runner) {
65+
sum += (runner.val * Math.pow(10, m));
66+
runner = runner.next;
67+
m++;
68+
}
69+
sum = sum.toString().split('').reverse();
70+
let l3 = new ListNode(sum[0], null);
71+
runner = l3;
72+
for (let i = 1; i < sum.length; i++) {
73+
runner.next = new ListNode(sum[i], null);
74+
runner = runner.next;
75+
}
76+
return l3;
77+
};
78+

0 commit comments

Comments
 (0)