チェーンテーブル反転(チェーンテーブル1→2→3→4→5→6,k=2,反転後2→1→4→3→6→5)


チェーンテーブルが反転します.
チェーンテーブル1→2→3→4→5→6,k=2,反転後2→1→4→3→6→5,k=3,反転後3→2→6→5,反転後3→2→6→5→4,k=4,反転後4→3→1→5→6,ヒント:この問題はチェーンテーブル逆置のアップグレード変形である.
コード:
pNode RotateList(pNode* pHead, DataType k)
{
	pNode pPre = Find(*pHead, k);
	pPre = pPre->next;
	pNode pCur = *pHead;

	pNode pNewNode = NULL;
	pNode pCur2 = NULL;
	while (pCur != pPre)
	{
		pNewNode = pCur;
		pCur = pCur->next;
		pNewNode->next = pCur2;
		pCur2 = pNewNode;
	}
	(*pHead)->next = pPre;
	return pNewNode;
}