25. Reverse Nodes in k-Group
https://leetcode.com/problems/reverse-nodes-in-k-group/
目前比较好理解的是recursive的解法,但是memory usage is not constant here is O(n/k)
class Solution:
def reverseKGroup(self, head: ListNode, k: int) -> ListNode:
cnt = 0
curr = head
while curr != None:
cnt+=1
curr = curr.next
if cnt < k:
return head
prev,newHead = self.reverse(head,k)
head.next = self.reverseKGroup(newHead,k)
return prev
def reverse(self,head,k):
prev,curr,nxt = None,head, head
while k > 0:
nxt = curr.next
curr.next = prev
prev = curr
curr = nxt
k-=1
return (prev,curr)
Last updated
Was this helpful?