- 真正的動態數據結構
- 最簡單的動態數據結構
- 可以深入的理解引用
- 可以深入的理解遞歸
LinkedList實現
內部類Node,用於存放數據和next;
LinkedList有一個Node類型的變量指向head。
- 在List頭部添加元素
- 在List中間添加元素
- 刪除List中指定位置的元素
- 修改List中指定位置的元素
- 查找指定位置的元素
注意:此處的List的實現都使用了虛擬頭節點dummyHead,dummyHead的元素value爲null,next指向索引爲0的節點。
時間複雜度分析
這是的鏈表是單鏈表的分析:
- 增:
O(n),在鏈表頭節點增加元素時間複雜度爲
O(1);
- 刪:
O(n),在鏈表頭節點刪除元素時間複雜度爲
O(1);
- 改:
O(n)
- 查:
O(n)
用鏈表實現棧
用帶有尾指針的鏈表實現隊列
刪除鏈表中的元素:
刪除一個節點首先找到被刪除節點之前的一個節點。如果是頭節點需要單獨處理,因爲頭節點沒有前一個節點。另一種思路是加入虛擬頭節點,統一操作。