ListNode* rotateRight(ListNode* head, int k) {
if(head==NULL)
return NULL;
ListNode* p,*q;
int i=0,num=0;
p=head;
q=head;
while(p!=NULL)
{
num++;
p=p->next;
}
p=head;
k=k%num;
while(i<k){
while(p->next!=NULL){
q=p;
p=p->next;
}
p->next=head;
head=p;
q->next=NULL;
i++;
}//while
return head;
}
此题就是一次一次的有移,值得注意的是,应该先统计出有几个结点,求出右移对结点数的余数,否则会TLE
61. Rotate List
最新推荐文章于 2021-03-07 21:15:49 发布