單鏈表逆序
阿新 • • 發佈:2018-05-31
循環 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;
如上代碼主要是先保存頭部連接的下一節點,置換為當前節點,保存當前節點的下一節點,置換為頭部節點的前下一節點。之後利用保存的當前節點的下一節點進行循環置換。
挺簡單的,但是當時怎麽也理不清道不明,唉,考菜說的就是我這種人吧!
單鏈表逆序