给你一个链表的头节点 head
,旋转链表,将链表每个节点向右移动 k
个位置。
翻译题目 : 就是把原来的链表尾部连上头,然后找倒数第k个点作为新的表头
但值得注意的是,当k超过链表长度的时候就相当于链表重置了,所以需要k对节点长度取余
class Solution: def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]: #就是把原来的链表尾部连上头,然后找倒数第k个点作为新的表头 if not head: return p = head i = 1 #记录链表长度 while p.next: p = p.next i += 1 k = k % i #当k超过了;链表节点个数的时候就想当于循环了一次 p.next = head for _ in range(i - k): #找到断开的点 p = p.next res = p.next #新的起点 p.next = None #断开 return res 作者:xin-979 链接:https://leetcode-cn.com/problems/rotate-list/solution/pythonxiang-xi-zhu-shi-qing-xi-ti-jie-by-wx9j/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。