您的位置:首页 > 其它

链表相邻元素翻转

2013-02-25 15:35 531 查看
a->b->c->d->e->f->g,翻转后变为:b->a->d->c->f->e->g

struct ListNode
{
int m_nValue;
ListNode * m_pNext;
};

void ExchangeAdjacentNodes(ListNode* pHead)
{
if (pHead == NULL || pHead->m_pNext == NULL)
return;
ListNode* p1 = pHead;
ListNode* p2 = pHead->m_pNext;
pHead = p2;
p1->m_pNext = p2->m_pNext;
p2->m_pNext = p1;
ListNode* pre = p1;
while (pre->m_pNext != NULL && pre->m_pNext->m_pNext != NULL)
{
p1 = pre->m_pNext;
p2 = pre->m_pNext->m_pNext;
pre->m_pNext = p2;
p1->m_pNext = p2->m_pNext;
p2->m_pNext = p1;
pre = p1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: