链表倒置的过程看似比较复杂,
只要理解透彻其过程,其实还是蛮简单的。
这里具体的过程就不叙述了。
想要了解其实现机理,可以参考<剑指OFFER>,
其中有对链表倒置过程的详细分析。
源代码:
MyList.h
void Reverse(); // 逆转链表MyList.cpp
void MyList::Reverse() { if (NULL == m_pHead || NULL == m_pHead->pNext) return; ListNode* pNewHead = NULL; ListNode* pPrev = NULL; ListNode* pCur = m_pHead; ListNode* pNext = NULL; while (pCur != NULL) { if (NULL == pCur->pNext) pNewHead = pCur; pNext = pCur->pNext; pCur->pNext = pPrev; pPrev = pCur; pCur = pNext; } m_pHead = pNewHead; }