# 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 head==None:
return head
curNode = head
size = 0
while curNode!=None:
size += 1
curNode = curNode.next
k = k%size
if k==0: # return head
return head
len = 1
curNode = head
while len<size-k:
len += 1
curNode = curNode.next # curNode forward 3
newHead = curNode.next # newHead forward 4
curNode.next = None # curNode foward null, head now 1-3
curNode = newHead # curNode forward 4
while curNode.next!=None:
curNode = curNode.next # curNode traversal 4-5
curNode.next = head # curNode forward head
return newHead
近期评论