演算法圖鑑
資料結構 · 5 個細項

Linked List鏈結串列

鏈結串列放棄連續記憶體,換取在已知位置 O(1) 插入與刪除。它本身用得不算多,但指標操作的直覺、快慢指標技巧,以及作為 LRU 快取與樹的前身,讓它成為必經之路。

為什麼要學 Linked List

現實中的應用
瀏覽器的上一頁/下一頁

每個頁面記住前一頁和後一頁,就是雙向鏈結串列。音樂播放清單、編輯器的 undo/redo 也是。

→ 對應課程:Doubly Linked List
LRU 快取

最近用過的移到最前面、太久沒用的從尾巴踢掉,配合雜湊表就能 O(1) 完成。作業系統的分頁置換、CDN 快取都用這個。

→ 對應課程:Doubly Linked List
判斷有沒有環

一快一慢兩個指標在跑道上跑,有環就一定會相遇。這個技巧不用額外記憶體,也能找出串列中點。

→ 對應課程:Fast & Slow Pointers

細項

5