classSolution{public:ListNode*rotateRight(ListNode*head,intk){if(!head||!head->next||k==0)returnhead;ListNode*tail;intlength=1;for(tail=head;tail->next;tail=tail->next)++length;tail->next=head;// Circle the listconstintt=length-k%length;for(inti=0;i<t;++i)tail=tail->next;ListNode*newHead=tail->next;tail->next=nullptr;returnnewHead;}};
classSolution{publicListNoderotateRight(ListNodehead,intk){if(head==null||head.next==null||k==0)returnhead;intlength=1;ListNodetail=head;for(;tail.next!=null;tail=tail.next)++length;tail.next=head;// Circle the listfinalintt=length-k%length;for(inti=0;i<t;++i)tail=tail.next;ListNodenewHead=tail.next;tail.next=null;returnnewHead;}}
classSolution:defrotateRight(self,head:ListNode,k:int)->ListNode:ifnotheadornothead.nextork==0:returnheadtail=headlength=1whiletail.next:tail=tail.nextlength+=1tail.next=head# Circle the listt=length-k%lengthfor_inrange(t):tail=tail.nextnewHead=tail.nexttail.next=NonereturnnewHead