题目描述:
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。
测试用例:
解题思路:
根据k找到断点,将链表分成两部分,把断点前的部分接到断点后的部分的尾部。
代码如下:
class Solution:
def rotateRight(self, head: ListNode, k: int) -> ListNode:
length = 0
new = head
while new:
length += 1
new = new.next
if not length:
return None
k = k % length
if not k:
return head
point = head
left = head
right = head
while k:
k -= 1
left = left.next
while left.next:
left = left.next
right = right.next
head = right.next
right.next = None
left.next = point
return head