0. 题目
1. tail后移动n-k位,再切断,下一个节点即为头节点。(倒序第k个是头节点,正序第n-k个是尾节点,因为是环。)
class Solution:
def rotateRight(self, head, k):
if not head or k==0: return head #空链表/不移动
p = head
n = 1
while p.next:
p = p.next
n +=1
k %= n #考虑减少循环次数,取余数
if k==0: return head
k = n-k
# p遍历到尾节点
p.next = head
# 倒序第k个是头节点,正序第n-k个是尾节点。因为是环。
for i in range(k):
p = p.next
# p遍历到新的尾节点
newh = p.next
p.next = None
return newh