leetcode61. 旋转链表
程序员文章站
2022-05-06 09:39:51
...
思路
**先将该链表遍历,得到链表长度len,然后首尾相连,然后找到原来的第(n-k % len-1)
个位置断开。
注意,如图,红色虚线为应该截断的位置,则start应该正好来到(n-k % len-1)
这个位置,再令res = start.next
,start.next=None
。那么意味着i
必须小于(n-k % len-1)
。
class Solution:
def rotateRight(self, head: ListNode, k: int) -> ListNode:
if head is None or head.next is None: return head
start = head #用start记录原来的head
end = None
len = 0
while head:
end = head
len += 1
head =head.next
end.next = start #首尾相连
#开始截断
p = len - k % len - 1 #截断位置
i = 0
while i < p: #一定要小于p-1,不然截断位置错误
start = start.next
i += 1
res = start.next
start.next = None
return res
上一篇: go 语言实现简单的学生管理系统
下一篇: 请教php上传文件出错 求解