struct ListNode* rotateRight(struct ListNode* head, int k){
if (!head) return head;
int length=0;
struct ListNode*temp=head;
while(temp) {temp=temp->next; length++;}
temp=head;
if (k%length==0) return head;
for(int i=1;i<length-(k%length);i++){
temp=temp->next; }
struct ListNode*ph=temp->next;
struct ListNode*t=temp->next;
temp->next=NULL;
while(t->next!=NULL) {t=t->next;} t->next=head;
return ph;
}
思路;链表前后切割,前后拼接。