Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 64ae7f4

Browse files
authored
Update addTwoNumbers.md
1 parent 7d4c579 commit 64ae7f4

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

addTwoNumbers.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,45 @@ Explanation: 342 + 465 = 807.
3030
* @return {ListNode}
3131
*/
3232
var addTwoNumbers = function(l1, l2) {
33+
var carried = 0; // 用于进位
34+
const head = new ListNode();
35+
const noop = {
36+
val: 0,
37+
next: null
38+
};
39+
let currentL1 = l1;
40+
let currentL2 = l2;
41+
let currentNode = head; // 返回的链表的当前node
42+
let newNode; // 声明在外面节省内存
43+
let previousNode; // 记录前一个节点,便于删除最后一个节点
44+
45+
while (currentL1 || currentL2) {
46+
newNode = new ListNode(0);
3347

48+
currentNode.val =
49+
((currentL1 || noop).val + (currentL2 || noop).val + carried) % 10;
50+
51+
currentNode.next = newNode;
52+
previousNode = currentNode;
53+
currentNode = newNode;
54+
55+
if ((currentL1 || noop).val + (currentL2 || noop).val + carried >= 10) {
56+
carried = 1;
57+
} else {
58+
carried = 0;
59+
}
60+
61+
currentL1 = (currentL1 || noop).next;
62+
currentL2 = (currentL2 || noop).next;
63+
}
64+
65+
if (carried) {
66+
// 还有位没进呢
67+
previousNode.next = new ListNode(carried)
68+
} else {
69+
previousNode.next = null;
70+
}
71+
72+
return head;
3473
};
3574
```

0 commit comments

Comments
 (0)