Python 这里超过时限的原因是什么

Python 这里超过时限的原因是什么,python,linked-list,nodes,Python,Linked List,Nodes,给定一个链表,将列表向右旋转k个位置,其中k为非负 以下是一些例子: 输入:1->2->3->4->5->NULL,k=2 输出:4->5->1->2->3->NULL 说明: 向右旋转1步:5->1->2->3->4->NULL 向右旋转两步:4->5->1->2->3->NULL 输入:0->1->2->NULL,k=4 输出:2->0->1->NULL 说明: 向右旋转1步:2->0->1->NULL 向右旋转2步:1->2->0->NULL 向右旋转3步:0->1->2->NULL 向右

给定一个链表,将列表向右旋转k个位置,其中k为非负

以下是一些例子:

输入:1->2->3->4->5->NULL,k=2
输出:4->5->1->2->3->NULL
说明:
向右旋转1步:5->1->2->3->4->NULL
向右旋转两步:4->5->1->2->3->NULL
输入:0->1->2->NULL,k=4
输出:2->0->1->NULL
说明:
向右旋转1步:2->0->1->NULL
向右旋转2步:1->2->0->NULL
向右旋转3步:0->1->2->NULL
向右旋转4步:2->0->1->NULL
代码:

类解决方案:
def rotateRight(self,head:ListNode,k:int)->ListNode:
如果k<0:
回流头
如果head为None或head.next为None:
回流头
它=头
而k!=0:
虽然it.next.next不是无:
it=it.next
temp=it.next
it.next=无
温度下一个=头
水头=温度
它=头
k-=1
回流头
上述代码适用于k<2000000

失败的测试用例是-

Last executed input:

[1,2,3]

2000000000

Error: Time Limit Exceeded

时间复杂度将是O(k*列表长度),对吗?

使用两个
,而循环
效率不高对于
k
的大值,您可以使用
k%列表长度来减少大量不必要的工作。(将列表旋转N是没有用的,因为列表最终会回到其原始状态。)使用两个
while循环
是无效的。对于
k
的大值,使用
k%length\u of_list
可以减少大量不必要的工作。(将列表旋转N是没有用的,因为列表最终会返回其原始状态。)