验证,校对

This commit is contained in:
jaredliw
2021-07-16 00:06:52 +08:00
parent 4a8c81e88e
commit 88fcd88712
14 changed files with 180 additions and 197 deletions

View File

@@ -23,22 +23,22 @@
示例1
```java
输入(7 -> 1 -> 6) + (5 -> 9 -> 2)即617 + 295
输出2 -> 1 -> 9即912
输入(7 -> 1 -> 6) + (5 -> 9 -> 2) 617 + 295
输出2 -> 1 -> 9 912
```
示例2
```java
输入(9 -> 9) + (9 -> 9),99+99
输出8->9->1
输入(9 -> 9) + (9 -> 9) 99 + 99
输出8 -> 9 -> 1
```
示例3
```java
输入(5)+(5),5+5
输出0->1
输入(5) + (5) 5 + 5
输出0 -> 1
```
**题目解析**
@@ -67,7 +67,7 @@
![链表求和](https://cdn.jsdelivr.net/gh/tan45du/photobed@master/photo/链表求和.1yh4ymdee3k0.gif)
这里需要注意得时链表遍历结束我们应该跳出循环但是我们的nlist仍在尾部添加了1节点那是因为跳出循环时summod值为1所以我们需要在尾部再添加一个节点
这里需要注意得时链表遍历结束我们应该跳出循环但是我们的 nlist 仍在尾部添加了1节点那是因为跳出循环时summod 值为1所以我们需要在尾部再添加一个节点
@@ -79,7 +79,7 @@ Java Code:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//待会儿要返回的链表
ListNode nList = new ListNode(-1);//虚拟头节点
ListNode nList = new ListNode(-1);//节点
ListNode tempnode = nList;
//用来保存进位值初始化为0
int summod = 0;
@@ -92,7 +92,7 @@ class Solution {
int sum = l1num+l2num+summod;
//更新进位值例18/10=19/10=0
summod = sum/10;
//新节点保存的值18% 8=2则添加2
//新节点保存的值18%8=2则添加2
sum = sum%10;
//添加节点
tempnode.next = new ListNode(sum);
@@ -109,7 +109,7 @@ class Solution {
if (summod != 0) {
tempnode.next = new ListNode(summod);
}
return nList.next;//去除-1节点
return nList.next;//去除节点
}
}
```
@@ -121,7 +121,7 @@ class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
//待会儿要返回的链表
ListNode * nList = new ListNode(-1);//虚拟头节点
ListNode * nList = new ListNode(-1);//节点
ListNode * tempnode = nList;
//用来保存进位值初始化为0
int summod = 0;
@@ -134,7 +134,7 @@ public:
int sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = sum / 10;
//新节点保存的值1 %8=2则添加2
//新节点保存的值18%8=2则添加2
sum = sum % 10;
//添加节点
tempnode->next = new ListNode(sum);
@@ -151,7 +151,7 @@ public:
if (summod != 0) {
tempnode->next = new ListNode(summod);
}
return nList->next;//去除-1节点
return nList->next;//节点
}
};
```
@@ -161,7 +161,7 @@ JS Code:
```js
var addTwoNumbers = function(l1, l2) {
//待会儿要返回的链表
let nList = new ListNode(-1);//虚拟头节点
let nList = new ListNode(-1);//节点
let tempnode = nList;
//用来保存进位值初始化为0
let summod = 0;
@@ -174,7 +174,7 @@ var addTwoNumbers = function(l1, l2) {
let sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = ~~(sum / 10);
//新节点保存的值1 %8=2则添加2
//新节点保存的值18%8=2则添加2
sum = sum % 10;
//添加节点
tempnode.next = new ListNode(sum);
@@ -191,21 +191,21 @@ var addTwoNumbers = function(l1, l2) {
if (summod !== 0) {
tempnode.next = new ListNode(summod);
}
return nList.next;//去除-1节点
return nList.next;//去除节点
};
```
Python Code:
```py
```python
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
# 待会儿要返回的链表
nList = ListNode(-1) # 虚拟头节点
nList = ListNode(-1) # 节点
tempnode = nList
# 用来保存进位值初始化为0
summod = 0
while l1 is not None and l2 is not None:
while l1 is not None o l2 is not None:
# 如果l1的链表为空则l1num为0若是不为空则为链表的节点值
# 判断是否为空为空就设为0
l1num = 0 if l1 is None else l1.val
@@ -227,6 +227,6 @@ class Solution:
# 最后根据进位值判断需不需要继续添加节点
if summod != 0:
tempnode.next = ListNode(summod)
return nList.next # 去除-1节点
return nList.next # 去除节点
```