Skip to content

Commit 8898b22

Browse files
committed
Update 2 Add Two Numbers.js
1 parent 496bcf3 commit 8898b22

File tree

1 file changed

+19
-42
lines changed

1 file changed

+19
-42
lines changed

2 Add Two Numbers.js

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/**
2+
* Author: Bilong HUANG
23
* Definition for singly-linked list.
34
* function ListNode(val) {
45
* this.val = val;
@@ -11,51 +12,27 @@
1112
* @return {ListNode}
1213
*/
1314
var addTwoNumbers = function(l1, l2) {
14-
if(l1 === null || l2 === null){
15-
return l1 || l2;
16-
}
17-
18-
var result = new ListNode(0);
19-
var cur = result;
20-
var p = l1;
21-
var q = l2;
22-
var carry = 0;
15+
var result, node, node_current, add = 0;
2316

24-
while(p || q){
25-
var qval;
26-
var pval;
27-
28-
if(q){
29-
qval = q.val;
30-
q = q.next;
31-
} else {
32-
qval = 0;
33-
}
34-
35-
if(p){
36-
pval = p.val;
37-
p = p.next;
17+
while ( l1 || l2 ) {
18+
node_current = new ListNode((l1 ? l1.val : 0) + (l2 ? l2.val : 0) + add);
19+
if ( add = Math.floor(node_current.val / 10))
20+
node_current.val = node_current.val % 10;
21+
if (result == null) {
22+
result = node_current;
3823
} else {
39-
pval = 0;
24+
node.next = node_current;
4025
}
41-
42-
var val = qval + pval + carry;
43-
44-
if(val > 9){
45-
carry = 1;
46-
val %= 10;
47-
} else {
48-
carry = 0;
49-
}
50-
51-
cur.next = new ListNode(val);
52-
cur = cur.next;
26+
node = node_current;
27+
if (l1)
28+
l1 = (l1.next ? (l1 = l1.next) : null);
29+
if (l2)
30+
l2 = (l2.next ? (l2 = l2.next) : null);
5331
}
5432

55-
if(carry !== 0){
56-
cur.next = new ListNode(1);
33+
if (add != 0) {
34+
node_current = new ListNode(add);
35+
node.next = node_current;
5736
}
58-
59-
return result.next;
60-
61-
};
37+
return result;
38+
};

0 commit comments

Comments
 (0)