鏈表(1)

鏈表問題知識點和注意事項
1.鏈表問題算法難度不高,但考察代碼實現能力。
2.鏈表和數組都是一種線性結構,鏈表空間不一定保證連續,是臨時分配的

鏈表的分類
1.按鏈接方向分類:單鏈表,雙聊表
2.有無環:普通鏈表,循環鏈表

鏈表問題代碼實現關鍵點
1.鏈表調整函數的返回值,類型要求往往是節點類型。
2.處理鏈表過程中,先採用畫圖的方式理清邏輯。
3.鏈表問題對於邊界條件討論要求嚴格。

關於鏈表插入和刪除的注意事項
1.特殊處理鏈表爲空,或者鏈表長度爲1的情況。
2.注意插入操作的調整過程(需要找前後節點)
3.注意刪除操作的調整過程(需要找前後節點)
注意:頭尾節點及空節點需要特殊考慮。

雙鏈表的插入與刪除和單鏈表類似,但是需額外考慮previous指針的指向。

單鏈表的反轉操作
1、當鏈表爲空或長度爲1,特殊處理。
2.對一般情況,如圖
已經反轉好的頭部爲head,當前節點now。
這裏寫圖片描述

步驟1:
now的next指針指向head。
這裏寫圖片描述
步驟2:
now設置爲新的頭部
這裏寫圖片描述
步驟3:
這裏寫圖片描述
然後再進行步驟1和步驟2
這裏寫圖片描述

PS
1.大量鏈表問題可以使用額外數據結構來簡化調整過程
2.但鏈表問題最優解往往是不使用額外數據結構的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章