Skip to content

Commit 12b83c3

Browse files
committed
lc 002
1 parent c130d2c commit 12b83c3

File tree

4 files changed

+31
-22
lines changed

4 files changed

+31
-22
lines changed

LeetCode/ProblemSet/002.Add Two Numbers/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
# 两数相加
22

33
## 链接
4-
54
https://leetcode-cn.com/problems/add-two-numbers/description/
65

76
## 描述
8-
97
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
108

119
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
@@ -17,3 +15,7 @@ https://leetcode-cn.com/problems/add-two-numbers/description/
1715
原因:342 + 465 = 807
1816
```
1917

18+
## 思路
19+
就是两数相加,注意进位
20+
21+
可以复用 l1,只修改 val,而不是完全重新 new

LeetCode/ProblemSet/002.Add Two Numbers/add-two-numbers.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,24 @@
77
const {LeetCode, ListNode} = require('../../leetcode.js');
88

99
var addTwoNumbers = function (l1, l2) {
10-
let list = null;
11-
let node = null;
12-
let val = null;
13-
let carry = 0;
10+
let head = l1, node = null;
11+
let cur = 0, carry = 0;
1412
while (l1 || l2) {
1513
let l1v = l1 ? l1.val : 0;
1614
let l2v = l2 ? l2.val : 0;
1715

18-
let sum = l1v + l2v + carry;
19-
if (sum >= 10) {
16+
cur = l1v + l2v + carry;
17+
carry = 0;
18+
if (cur >= 10) {
2019
carry = 1;
21-
val = sum - 10;
22-
} else {
23-
carry = 0;
24-
val = sum;
20+
cur -= 10;
2521
}
2622

27-
if (!list && !node) {
28-
node = new ListNode(val);
29-
list = node;
23+
if (l1) {
24+
l1.val = cur;
25+
node = l1;
3026
} else {
31-
node.next = new ListNode(val);
27+
node.next = new ListNode(cur);
3228
node = node.next;
3329
}
3430

@@ -40,13 +36,23 @@ var addTwoNumbers = function (l1, l2) {
4036
node.next = new ListNode(carry);
4137
}
4238

43-
return list;
39+
return head;
4440
};
4541

4642
let l1 = LeetCode.arrToList([2, 4, 3]);
4743
let l2 = LeetCode.arrToList([5, 6, 4]);
4844

49-
let list = addTwoNumbers(l1, l2);
45+
let list = addTwoNumbers(l1, l2); // 342 + 465 = 807
46+
LeetCode.showList(list);
47+
48+
l1 = LeetCode.arrToList([5]);
49+
l2 = LeetCode.arrToList([5]);
50+
51+
list = addTwoNumbers(l1, l2); // 5 + 5 = 10
5052
LeetCode.showList(list);
5153

54+
l1 = LeetCode.arrToList([2, 4, 6]);
55+
l2 = LeetCode.arrToList([5, 6, 4]);
5256

57+
list = addTwoNumbers(l1, l2); // 642 + 465 = 1107
58+
LeetCode.showList(list);

LeetCode/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ _**刷题真心累,真心花时间,主要还是智商不够**_
1919
- 2018.9.21 复习总结之前的刷题,不能一味刷题,而不总结归纳。
2020

2121

22-
| # | 题目 | 打败 | 难度 |
23-
|:---:|:---:|:---:|:---:|
24-
| 001 | [两数之和](./ProblemSet/001.Two%20Sum) | 95% | 简单 |
22+
| # | 题目 | 执行用时 |打败 | 难度 |
23+
|:---:|:---:|:---:|:---:|:---:|
24+
| 001 | [两数之和](./ProblemSet/001.Two%20Sum)| 70 ms | 95% | 简单 |
25+
| 002 | [两数相加](./ProblemSet/002.Add%20Two%20Numbers) | 180 ms | 65 % | 中等 |

notes/binary-tree-traversal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* 二叉树遍历的实现
33
*/
4-
const {LeetCode, TreeNode} = require('../leetcode.js');
4+
const {LeetCode, TreeNode} = require('../LeetCode/leetcode.js');
55

66
class BinaryTreeTraversal {
77
/**

0 commit comments

Comments
 (0)