Hacktoberfest-accepted-2022 icon indicating copy to clipboard operation
Hacktoberfest-accepted-2022 copied to clipboard

Create Reverse Nodes in k-Group.py

Open DevilANANDGupta opened this issue 2 years ago • 0 comments

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]: dummy = ListNode(0, head) groupPrev = dummy while True: kth = self.getKth(groupPrev, k) if not kth: break groupNext = kth.next prev, curr = kth.next, groupPrev.next while curr != groupNext: tmp = curr.next curr.next = prev prev = curr curr = tmp tmp = groupPrev.next groupPrev.next = kth groupPrev = tmp return dummy.next

def getKth(self, curr, k):
    while curr and k > 0:
        curr = curr.next
        k -=1
    return curr
    
    

DevilANANDGupta avatar Oct 21 '22 21:10 DevilANANDGupta