Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Definition for singly-linked list.
- # class ListNode:
- # def __init__(self, val=0, next=None):
- # self.val = val
- # self.next = next
- class Solution:
- def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
- return self.helper(head, k, 0)
- def helper(self, head, k, count):
- prev = None
- currNode = head
- while currNode and count < k:
- prev = currNode
- currNode = currNode.next
- count += 1
- if count < k:
- return head
- prev.next = None
- newFront = self.reverse(head) # WAS REVERSING ON CURRNODE INSTEAD OF HEAD
- head.next = self.helper(currNode, k, 0)
- return newFront
- def reverse(self, head):
- if not head or not head.next:
- return head
- temp = head.next
- newFront = self.reverse(head.next)
- temp.next = head
- head.next = None
- return newFront
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement