單鏈表---兩種方法簡單實現單鏈表逆置
阿新 • • 發佈:2019-02-08
方法一: 反轉前後指標,通過建立三個指標的移動,將兩兩相鄰的結點依次進行反轉。
方法二:頭插法,新建一個頭結點,將原連結串列的結點依次頭插到新連結串列中。//單鏈表的逆置---相鄰指標 PNode ReverseList(PNode pHead) { PNode pPre = pHead; PNode pCur = NULL; PNode pNext = NULL; if (NULL == pHead || NULL == pHead->_pNext) return; //多個節點 pCur = pPre->_pNext; pNext = pCur->_pNext; pHead->_pNext = NULL; while (pNext) { pCur->_pNext = pPre; pPre = pCur; pCur = pNext; pNext = pCur->_pNext; } pCur->_pNext = pPre; return pCur; }
// 單鏈表的逆置--頭插法 PNode ReverseList2(PNode pHead) { PNode pPre = NULL; PNode pCur = NULL; PNode pNewHead = NULL; if (NULL == pHead || NULL == pHead->_pNext) return pHead; pPre = pHead; pCur = pPre->_pNext; while (pCur) { pPre->_pNext = pNewHead; pNewHead = pPre; pPre = pCur; pCur = pCur->_pNext; } pPre->_pNext = pNewHead; pNewHead = pPre; return pNewHead; }