您的位置:首页 > 职场人生

链表翻转(给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5)

2017-07-25 15:21 253 查看
链表翻转。

给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐