From d21952804763145fc99ac1ec4ab8c81f2e191f6f Mon Sep 17 00:00:00 2001 From: Alka107 <78424521+Alka107@users.noreply.github.com> Date: Thu, 28 Oct 2021 10:41:33 +0530 Subject: [PATCH] reverse --- 0025/ReverseNode.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 0025/ReverseNode.py diff --git a/0025/ReverseNode.py b/0025/ReverseNode.py new file mode 100644 index 0000000..b0e7bbc --- /dev/null +++ b/0025/ReverseNode.py @@ -0,0 +1,21 @@ +def reverseKGroup(self, head: ListNode, k: int) -> ListNode: + p = head + e = r = ListNode(None) + + # find out the length of the list + n = 0 + while head: + head = head.next + n += 1 + + # rearrange the nodes + for i in range(n // k): # for every group + s = p # record the first node of a group that will soon become the last node of the reversed group + for _ in range(k): # for every node in a group + t = p.next + p.next = e.next # put the current node right before the head of the reversed group + e.next = p # register p as the head of the reversed group + p = t # visit the next node in the original list + e = s # update the end of the reversed group + e.next = p # append the tail to the end + return r.next