# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def rotateRight(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if not head or k == 0:
return head
slow = fast = head
length = 1
while k and fast.next:
fast = fast.next
length += 1
k -= 1
if k != 0:
k = (k + length - 1) % length # original k % length
return self.rotateRight(head, k)
else:
while fast.next:
fast = fast.next
slow = slow.next
return self.rotate(head, fast, slow)
def rotate(self, head, fast, slow):
fast.next = head
head = slow.next
slow.next = None
return head
Download Rotate List.pyLeetcode 061 Rotate List problem solution in python3 with explanation. This is the best place to expand your knowledge and get prepared for your next interview.
Feedback is the most important part of any website.
If you have any query, suggestion or feedback, Please feel free to contact us.