Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 1.05 KB

61.md

File metadata and controls

33 lines (29 loc) · 1.05 KB

LeetCode 61 Rotate List——medium

Given a linked list, rotate the list to the right by k places, where k is non-negative.
Example 1:
Input: 1->2->3->4->5->NULL, k = 2
Output: 4->5->1->2->3->NULL
Explanation:
rotate 1 steps to the right: 5->1->2->3->4->NULL
rotate 2 steps to the right: 4->5->1->2->3->NULL

Example 2:
Input: 0->1->2->NULL, k = 4
Output: 2->0->1->NULL
Explanation:
rotate 1 steps to the right: 2->0->1->NULL
rotate 2 steps to the right: 1->2->0->NULL
rotate 3 steps to the right: 0->1->2->NULL
rotate 4 steps to the right: 2->0->1->NULL

思路:
1、重复逆转、k值有可能会大于list的长度
2、先遍历list,得出list的长度len
3、如果k%len == 0 、则等于原来的list、直接return head
4、得出切割的point = len - k%len
5、将p遍历到切割的point的前一个节点、将list切割成两个链表right.next = p.next
6、将原来的切割点赋值为空、p.next = null
7、并将right链表连接上head、即可return  right.next