Skip to content

Commit df43a21

Browse files
committed
regular leetcode
1 parent 007e450 commit df43a21

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

092._reverse_linked_list_ii.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
###92. Reverse Linked List II
2+
3+
题目:
4+
<https://leetcode.com/problems/reverse-linked-list-ii/>
5+
6+
7+
难度:
8+
Medium
9+
10+
11+
跟 reverse linked list一样
12+
13+
思路: 找到 第 m 个node,然后开始reverse到第n个node,然后再把它们和原本的list连接起来
14+
15+
AC 代码
16+
17+
```
18+
class Solution(object):
19+
def reverseBetween(self, head, m, n):
20+
"""
21+
:type head: ListNode
22+
:type m: int
23+
:type n: int
24+
:rtype: ListNode
25+
"""
26+
# m == n, not reverse
27+
if m == n : return head
28+
29+
dummy = ListNode(-1)
30+
dummy.next = head
31+
32+
mbefore = dummy
33+
cnt = 1
34+
35+
while mbefore and cnt < m:
36+
mbefore = mbefore.next
37+
cnt += 1
38+
39+
prev = None
40+
cur = mbefore.next
41+
tail1 = mbefore.next
42+
43+
44+
while cnt <= n :
45+
nxt = cur.next
46+
cur.next = prev
47+
prev = cur
48+
cur = nxt
49+
cnt += 1
50+
51+
52+
53+
mbefore.next = prev
54+
tail1.next = cur
55+
56+
return dummy.next
57+
```
58+
59+
看了一下别人的代码,又比我写的好嘛,因为是保证m和n有效,用的是for循环先找到 m node:
60+
61+
62+
for _ in range(m-1):
63+
....
64+
65+
for _ in range(n-m):
66+
reverse 操作

0 commit comments

Comments
 (0)