Skip to content

Commit bbceee0

Browse files
committed
feat: 两数相加 II
1 parent ed4deb8 commit bbceee0

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

链表/两数相加 II-445.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
var reverseList = function (head) {
2+
if (!head) return null
3+
let res = null
4+
let dfs = function (node) {
5+
if (node.next) {
6+
dfs(node.next)
7+
node.next.next = node
8+
} else {
9+
res = node
10+
}
11+
}
12+
13+
dfs(head)
14+
15+
head.next = null
16+
17+
return res
18+
};
19+
20+
var addTwoNumbers = function (l1, l2) {
21+
l1 = reverseList(l1)
22+
l2 = reverseList(l2)
23+
24+
let i = 0
25+
let root = new ListNode()
26+
let cur = root
27+
let plus = false
28+
29+
let traverse = (node1, node2) => {
30+
let isDouble = !!node2
31+
while (isDouble ? (node1 && node2) : node1) {
32+
cur.next = new ListNode()
33+
cur = cur.next
34+
35+
let sum = node1.val + (plus ? 1 : 0)
36+
if (isDouble) {
37+
sum += node2.val
38+
}
39+
40+
if (sum >= 10) {
41+
sum %= 10
42+
plus = true
43+
} else {
44+
plus = false
45+
}
46+
cur.val = sum
47+
48+
node1 = node1.next
49+
if (isDouble) {
50+
node2 = node2.next
51+
}
52+
}
53+
54+
if (node1) {
55+
traverse(node1)
56+
}
57+
if (node2) {
58+
traverse(node2)
59+
}
60+
}
61+
62+
traverse(l1, l2)
63+
64+
if (plus) {
65+
cur.next = new ListNode(1)
66+
}
67+
68+
return reverseList(root.next)
69+
};

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy