|
1 |
| -## 两数相加 |
2 |
| -### 题目描述 |
| 1 | +# [2. 两数相加](https://leetcode-cn.com/problems/add-two-numbers/) |
3 | 2 |
|
4 |
| -给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 |
| 3 | +## 题目描述 |
| 4 | +<!-- 这里写题目描述 --> |
| 5 | +给出两个**非空**的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储**一位**数字。 |
| 6 | + |
| 7 | +如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 |
5 | 8 |
|
6 |
| -你可以假设除了数字 0 之外,这两个数字都不会以零开头。 |
| 9 | +您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 |
| 10 | + |
| 11 | +**示例:** |
7 | 12 |
|
8 |
| -示例: |
9 | 13 | ```
|
10 | 14 | 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
|
11 | 15 | 输出:7 -> 0 -> 8
|
12 | 16 | 原因:342 + 465 = 807
|
13 | 17 | ```
|
14 | 18 |
|
15 |
| -### 解法 |
16 |
| -同时遍历两个链表,对应值相加(还有 quotient)求余数得到值并赋给新创建的结点。而商则用quotient存储,供下次相加。 |
17 |
| - |
18 |
| -#### Java |
19 |
| - |
20 |
| -初始版本: |
| 19 | +## 解法 |
| 20 | +<!-- 这里可写通用的实现逻辑 --> |
| 21 | +同时遍历两个链表,对应值相加(还有 quotient)求余数得到值并赋给新创建的结点。而商则用 quotient 存储,供下次相加。 |
21 | 22 |
|
22 |
| -```java |
23 |
| -/** |
24 |
| - * Definition for singly-linked list. |
25 |
| - * public class ListNode { |
26 |
| - * int val; |
27 |
| - * ListNode next; |
28 |
| - * ListNode(int x) { val = x; } |
29 |
| - * } |
30 |
| - */ |
31 |
| -class Solution { |
32 |
| - public ListNode addTwoNumbers(ListNode l1, ListNode l2) { |
33 |
| - ListNode res = new ListNode(-1); |
34 |
| - ListNode cur = res; |
35 |
| - int quotient = 0; |
36 |
| - int t = 0; |
37 |
| - while (l1 != null && l2 != null) { |
38 |
| - t = l1.val + l2.val + quotient; |
39 |
| - quotient = t / 10; |
40 |
| - ListNode node = new ListNode(t % 10); |
41 |
| - cur.next = node; |
42 |
| - l1 = l1.next; |
43 |
| - l2 = l2.next; |
44 |
| - cur = node; |
45 |
| - } |
46 |
| - |
47 |
| - while (l1 != null) { |
48 |
| - t = l1.val + quotient; |
49 |
| - quotient = t / 10; |
50 |
| - ListNode node = new ListNode(t % 10); |
51 |
| - cur.next = node; |
52 |
| - l1 = l1.next; |
53 |
| - cur = node; |
54 |
| - } |
55 |
| - |
56 |
| - while (l2 != null) { |
57 |
| - t = l2.val + quotient; |
58 |
| - quotient = t / 10; |
59 |
| - ListNode node = new ListNode(t % 10); |
60 |
| - cur.next = node; |
61 |
| - l2 = l2.next; |
62 |
| - cur = node; |
63 |
| - } |
64 |
| - |
65 |
| - if (quotient != 0) { |
66 |
| - cur.next = new ListNode(quotient); |
67 |
| - cur = cur.next; |
68 |
| - } |
69 |
| - |
70 |
| - return res.next; |
71 |
| - |
72 |
| - } |
73 |
| -} |
74 |
| -``` |
| 23 | +### Java |
| 24 | +<!-- 这里可写当前语言的特殊实现逻辑 --> |
75 | 25 |
|
76 |
| -简化版本: |
77 | 26 | ```java
|
78 | 27 | /**
|
79 | 28 | * Definition for singly-linked list.
|
@@ -102,8 +51,8 @@ class Solution {
|
102 | 51 | }
|
103 | 52 | ```
|
104 | 53 |
|
105 |
| -#### CPP |
106 |
| -```CPP |
| 54 | +### CPP |
| 55 | +```cpp |
107 | 56 | class Solution {
|
108 | 57 | public:
|
109 | 58 | ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
|
@@ -141,35 +90,4 @@ public:
|
141 | 90 | return head->next;
|
142 | 91 | }
|
143 | 92 | };
|
144 |
| - |
145 |
| -``` |
146 |
| - |
147 |
| - |
148 |
| -# [题目](这里是题目链接,如:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/) |
149 |
| - |
150 |
| -## 题目描述 |
151 |
| -<!-- 这里写题目描述 --> |
152 |
| - |
153 |
| - |
154 |
| -## 解法 |
155 |
| -<!-- 这里可写通用的实现逻辑 --> |
156 |
| - |
157 |
| - |
158 |
| -### Python3 |
159 |
| -<!-- 这里可写当前语言的特殊实现逻辑 --> |
160 |
| - |
161 |
| -```python |
162 |
| - |
163 |
| -``` |
164 |
| - |
165 |
| -### Java |
166 |
| -<!-- 这里可写当前语言的特殊实现逻辑 --> |
167 |
| - |
168 |
| -```java |
169 |
| - |
170 |
| -``` |
171 |
| - |
172 |
| -### ... |
173 |
| -``` |
174 |
| -
|
175 | 93 | ```
|
0 commit comments