Repository navigation
Expand file tree
/
Copy path2-addToNumbers.js
More file actions
87 lines (70 loc) · 1.6 KB
/
Copy path2-addToNumbers.js
File metadata and controls
87 lines (70 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*
* Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
* Output: 7 -> 0 -> 8
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function (l1, l2) {
let result = [];
let result1 = [];
let result2 = [];
let tmp = l1;
do {
result1.push(tmp.val);
tmp = tmp.next;
} while (tmp);
tmp = l2;
do {
result2.push(tmp.val);
tmp = tmp.next;
} while (tmp);
if (result2.length > result1.length) {
tmp = result1;
result1 = result2;
result2 = tmp;
}
let count = result1.map((element, key)=> {
if (result2[key]) {
return element + result2[key];
} else {
return element;
}
});
let flag = false;
count.forEach((element)=> {
if (flag) {
element += 1;
}
if (element >= 10) {
flag = true;
result.push(element - 10);
} else {
flag = false;
result.push(element);
}
});
if (flag) {
result.push(1);
}
return result;
};
function ListNode({val, next}) {
this.val = val;
this.next = next;
}
let a1 = new ListNode({val: 3, next: null});
let a2 = new ListNode({val: 4, next: a1});
let a3 = new ListNode({val: 2, next: a2});
var b1 = new ListNode({val: 4, next: null});
var b2 = new ListNode({val: 6, next: b1});
var b3 = new ListNode({val: 5, next: b2});
console.log(addTwoNumbers(a3, b3));