首页 > 代码库 > Rotate List

Rotate List

class Solution {public:	typedef ListNode * SNode;    ListNode *rotateRight(ListNode *head, int k) {		SNode pcurrent , pnext,ptemp;		if(k<=0 || head == NULL || head->next == NULL)		return head;		pnext    = head;		pcurrent = head; 		int count = 0;		while(count <k)		{           		   if(pnext->next != NULL)		   {			  pnext = pnext->next;		   }		   else		   {              pnext = head;		   }		   count++;		}		if(pcurrent == pnext)		return head;        while(pnext->next != NULL)        {            pcurrent = pcurrent->next;			pnext    = pnext->next;		}		ptemp = pcurrent->next;		pcurrent->next = NULL;		pcurrent = ptemp;		pnext->next = head;		return pcurrent;            }};

 

Rotate List