1. 程式人生 > >單鏈表逆序

單鏈表逆序

循環 4行 void style 但是 next 沒有 wap 當前

  最近經常碰到讓寫鏈表逆序的命題,但是我總是粗心大意漏掉內容,造成結果是痛苦和迷茫:

 1 void SWapNow(Node* p)
 2 {
 3     Node* pCur = p->pNext;
 4     p->pNext = NULL;
 5     Node* pTemp = NULL;
 6     Node* pPre = NULL;
 7     while (NULL != pCur)
 8     {
 9         pPre = p->pNext;
10         p->pNext = pCur;
11         pTemp = pCur->pNext;
12 pCur->pNext = pPre; 13 pCur = pTemp; 14 } 15 }

  如上代碼,為頭插法,第4行內容沒有的話,鏈表在第一節點陷入死循環,造成空間不足的bug;

  如上代碼主要是先保存頭部連接的下一節點,置換為當前節點,保存當前節點的下一節點,置換為頭部節點的前下一節點。之後利用保存的當前節點的下一節點進行循環置換。

  挺簡單的,但是當時怎麽也理不清道不明,唉,考菜說的就是我這種人吧!

單鏈表逆序