Skip to content

Commit 6773610

Browse files
committed
feat: add 002
1 parent bc7bfd1 commit 6773610

File tree

4 files changed

+134
-122
lines changed

4 files changed

+134
-122
lines changed

README.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646

4747
|#|Title|Tag|
4848
|:------------- |:------------- |:------------- |
49-
|2|Add Two Numbers|Linked List, Math|
49+
|2|[Add Two Numbers][002]|Linked List, Math|
5050
|8|[String to Integer (atoi)][008]|Math, String|
5151
|19|[Remove Nth Node From End of List][019]|Linked List, Two Pointers|
5252

@@ -96,5 +96,8 @@
9696
[121]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/121/README.md
9797
[122]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/122/README.md
9898

99+
[002]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/002/README.md
99100
[008]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/008/README.md
100101
[019]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/019/README.md
102+
103+
[004]: https://github.com/Blankj/awesome-java-leetcode/blob/master/note/004/README.md

note/002/README.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# [Add Two Numbers][title]
2+
3+
## Description
4+
5+
You are given two **non-empty** linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
6+
7+
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
8+
9+
**Input:** (2 -> 4 -> 3) + (5 -> 6 -> 4)
10+
**Output:** 7 -> 0 -> 8
11+
12+
**Tags:** Linked List, Math
13+
14+
15+
## 思路
16+
17+
题意我也是看了好久才看懂,就是以链表表示一个数,低位在前,高位在后,所以题中的例子就是`342 + 465 = 807`,所以我们模拟计算即可。
18+
19+
``` java
20+
/**
21+
* Definition for singly-linked list.
22+
* public class ListNode {
23+
* int val;
24+
* ListNode next;
25+
* ListNode(int x) { val = x; }
26+
* }
27+
*/
28+
class Solution {
29+
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
30+
ListNode node = new ListNode(0);
31+
ListNode n1 = l1, n2 = l2, t = node;
32+
int sum = 0;
33+
while (n1 != null || n2 != null) {
34+
sum /= 10;
35+
if (n1 != null) {
36+
sum += n1.val;
37+
n1 = n1.next;
38+
}
39+
if (n2 != null) {
40+
sum += n2.val;
41+
n2 = n2.next;
42+
}
43+
t.next = new ListNode(sum % 10);
44+
t = t.next;
45+
}
46+
if (sum / 10 != 0) t.next = new ListNode(1);
47+
return node.next;
48+
}
49+
}
50+
```
51+
52+
53+
## 结语
54+
55+
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我GitHub上的LeetCode题解:[awesome-java-leetcode][ajl]
56+
57+
58+
59+
[title]: https://leetcode.com/problems/add-two-numbers
60+
[ajl]: https://github.com/Blankj/awesome-java-leetcode

project/leetcode/.idea/workspace.xml

+43-121
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.blankj.medium._002;
2+
3+
import com.blankj.structure.ListNode;
4+
5+
import java.util.Arrays;
6+
7+
/**
8+
* <pre>
9+
* author: Blankj
10+
* blog : http://blankj.com
11+
* time : 2017/10/11
12+
* desc :
13+
* </pre>
14+
*/
15+
public class Solution {
16+
17+
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
18+
19+
}
20+
21+
22+
public static void main(String[] args) {
23+
Solution solution = new Solution();
24+
25+
System.out.println(Arrays.toString(solution.addTwoNumbers(nums, target)));
26+
}
27+
}

0 commit comments

Comments
 (0)