添加py和js,添加注释

pull/33/head
jaredliw 2021-07-13 13:08:47 +08:00
parent ea1335f661
commit ed8fcb7c43
1 changed files with 87 additions and 13 deletions

View File

@ -55,11 +55,11 @@
1.
1.
2.
2.
3.1.
3. 1
@ -78,8 +78,8 @@ Java Code:
```java
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);
@ -106,10 +106,10 @@ class Solution {
}
}
//最后根据进位值判断需不需要继续添加节点
if (summod == 1) {
if (summod != 0) {
tempnode.next = new ListNode(summod);
}
return nList.next;
return nList.next;//去除-1节点
}
}
```
@ -120,8 +120,8 @@ C++ 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;
@ -134,7 +134,7 @@ public:
int sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = sum / 10;
//新节点保存的值18 % 8=2则添加2
//新节点保存的值1 %8=2则添加2
sum = sum % 10;
//添加节点
tempnode->next = new ListNode(sum);
@ -148,11 +148,85 @@ public:
}
}
//最后根据进位值判断需不需要继续添加节点
if (summod == 1) {
if (summod != 0) {
tempnode->next = new ListNode(summod);
}
return nList->next;
return nList->next;//去除-1节点
}
};
```
JS Code:
```js
var addTwoNumbers = function(l1, l2) {
//待会儿要返回的链表
let nList = new ListNode(-1);//虚拟头节点
let tempnode = nList;
//用来保存进位值初始化为0
let summod = 0;
while (l1 || l2) {
//如果l1的链表为空则l1num为0若是不为空则为链表的节点值
//判断是否为空为空就设为0
let l1num = l1 === null ? 0 : l1.val;
let l2num = l2 === null ? 0 : l2.val;
//将链表的值和进位值相加,得到为返回链表的值
let sum = l1num + l2num + summod;
//更新进位值例18/10=19/10=0
summod = ~~(sum / 10);
//新节点保存的值1 %8=2则添加2
sum = sum % 10;
//添加节点
tempnode.next = new ListNode(sum);
//移动指针
tempnode = tempnode.next;
if (l1) {
l1 = l1.next;
}
if (l2) {
l2 = l2.next;
}
}
//最后根据进位值判断需不需要继续添加节点
if (summod !== 0) {
tempnode.next = new ListNode(summod);
}
return nList.next;//去除-1节点
};
```
Python Code:
```py
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
#
nList = ListNode(-1) #
tempnode = nList
# 0
summod = 0
while l1 is not None and l2 is not None:
# l1l1num0
# 0
l1num = 0 if l1 is None else l1.val
l2num = 0 if l2 is None else l2.val
#
sum_ = l1num + l2num + summod
# 18/10=19/10=0
# 1 %8=22
# 使divmod
summod, sum_ = divmod(sum_, 10)
#
tempnode.next = ListNode(sum_)
#
tempnode = tempnode.next
if l1 is not None:
l1 = l1.next
if l2 is not None:
l2 = l2.next
#
if summod != 0:
tempnode.next = ListNode(summod)
return nList.next # -1
```