Simple iterative method II

amazon
Tags: #<Tag:0x00007f2423dbc998>

#1

ListNode* Solution::rotateRight(ListNode* A, int B) {

if(A==NULL||A->next==NULL)
{return A;}
int count=0;
ListNode *temp=A;

while(temp)
{
    temp=temp->next;
    count++;
    
}
B=B%count;
if(B==0)
{return A;}
int m=count-B;
temp=A;
for(int i=0;i<m-1;i++)
{
    temp=temp->next;
    
}
ListNode *C=temp->next;
temp->next=NULL;
ListNode *temp1=C;
for(int i=0;i<B-1;i++)
{temp1=temp1->next;}
temp1->next=A;
return C;

}