小黑代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
# k等于零或者head为空的情况下
if (not k) or (not head):
return head
temp = head
# 初始化数组的长度
n = 0
# 前驱结点
pre_temp = None
# 计算链表的长度
print('start')
while temp:
n += 1
pre_temp = temp
temp = temp.next
print(11111)
# 简化运算
k = k % n
if not k:
return head
# 首尾相连
pre_temp.next = head
# 开始旋转
pre_temp = None
temp = head
for i in range(n-k):
pre_temp = temp
temp = temp.next
# 将前驱结点的next置空,将其作为链表的尾结点
pre_temp.next = None
return temp