注意一些边界条件
ListNode *rotateRight(ListNode *head, int k) {
// Note: The Solution object is instantiated only once and is reused by each test case.
if(head==NULL)
return NULL;
int len = getLength(head);
k = k%len;
if(k==0)
return head;
ListNode* cur = head;
for(int i=0;i<len-1-k;i++)
cur = cur->next;
ListNode* tail = cur;
while(tail->next)
tail = tail->next;
ListNode* newHead = cur->next;
cur->next = NULL;
tail->next = head;
return newHead;
}
int getLength(ListNode* head)
{
int len = 0;
while(head)
{
++len;
head = head->next;
}
return len;
}