Skip to content

Commit d08ef16

Browse files
authoredOct 21, 2018
Add files via upload
1 parent 36182a2 commit d08ef16

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
 
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# 56ms 96.14%
2+
class Solution:
3+
def reverseKGroup(self, head, k):
4+
"""
5+
:type head: ListNode
6+
:type k: int
7+
:rtype: ListNode
8+
"""
9+
if not head:
10+
return None
11+
12+
mid = head
13+
stack, flag, last_node = [], True, ListNode(0)
14+
15+
while True:
16+
for i in range(k):
17+
stack.append(mid)
18+
mid = mid.next
19+
if mid is None and i < k - 1:
20+
return head
21+
22+
reverse_head = reverse_mid = stack.pop()
23+
24+
if flag:
25+
head = reverse_mid
26+
flag = False
27+
28+
while stack:
29+
reverse_mid.next = stack.pop()
30+
reverse_mid = reverse_mid.next
31+
32+
reverse_mid.next = mid
33+
last_node.next = reverse_head
34+
last_node = reverse_mid
35+
36+
if mid is None:
37+
return head

0 commit comments

Comments
 (0)
Please sign in to comment.