k>length求链表长度,最后节点指向头节点。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *rotateRight(ListNode *head, int k) {
if(head == NULL){
return NULL;
}
int lengthOfList = 0;
ListNode *back = head, *front = head, *p = head;
while(p->next != NULL){
lengthOfList++;
p = p->next;
}
lengthOfList++;
p->next = head;
k = lengthOfList - k%lengthOfList;
while(--k){
front = front->next;
}
ListNode *rotateHead = front->next;
front->next = NULL;
return rotateHead;
}
};