鍊錶專題彙總

2021-10-04 06:29:27 字數 2369 閱讀 5436

排序兩個鍊錶

一文搞懂鍊錶

前言:之前考研的時候因為基礎不紮實,所以演算法題大多靠背,but 熟練度是一方面,總結方法也要跟上,這樣才能起到舉一反三的效果。

tips:如果不知道思路,可以先舉乙個例子模擬一下

1、虛擬頭節點:建乙個虛擬節點更讓容易表示節點,這樣鍊錶的每個節點都是公平的,對於空鍊錶也更好處理

2、 快慢指標(特別注意slow指標,一般要的是它的位置):

3、遞迴

4、頭插法、尾插法

尾插法:順序構造鍊錶(給定陣列)

頭插法:

逆序構造鍊錶

給定單向鍊錶的頭指標和乙個節點指標,定義乙個函式在 o(1) 內刪除這個節點。

5、特殊情況:

鍊錶有0、1、2個節點的情況需要特別考慮(演算法開頭單列為一種情況)

(刪除、插入、尋找的時候 即使是長鏈,也要考慮被操作物件是頭節點、尾節點的情況,一般要定位某節點前節點的指標)

6、快慢指標的slow節點的位置問題

兩個鍊錶的公共節點 簡單

判斷鍊錶是否有環 141

找出環形鍊錶的入口節點 142

判斷回文鍊錶 234

重排鍊錶 l1-ln-l2… 143跟回文鍊錶很類似

交換鍊錶中的節點

n14 鍊錶中倒數最後k個結點

旋轉平移鍊錶 61

刪除鍊錶的倒數第 n 個節點 19

分隔鍊錶(按照給定的值x) 86

鍊錶元素按奇偶位置聚集 328

遞迴——鍊錶的地位都相同

(比如反轉鍊錶,各個節點的地位就是平等的不影響的)

迭代——鍊錶的地位不同,一般配合dummynode

(比如刪除重複元素,乙個元素的值會影響其他元素的地位)

合併兩個有序鍊錶 21

合併k個排序鍊錶 23

移除鍊錶特定值的元素 203

82. 刪除排序鍊錶中的重複元素 ii

刪除排序鍊錶中的重複元素 83

n15 反轉鍊錶

兩兩交換鍊錶中的節點//反轉鍊錶 24、206

反轉鍊錶(反轉指定位置的鍊錶)92

對鍊錶進行插入排序 147

o(nlogn) 時間複雜度排序鍊錶148

合併兩個有序鍊錶 21

合併k個排序鍊錶 23

兩數相加(兩個鍊錶求和 個位數在左邊 不需要用棧)2

兩個鍊錶求和 (個位數在右邊 需要用棧)445

1 判斷回文鍊錶 234

有序鍊錶轉化為平衡的bst 109

鍊錶的中間節點 876

鍊錶中間節點的應用

2 刪除鍊錶的倒數第 n 個節點 19

n14 鍊錶中倒數最後k個結點

刪除排序鍊錶中的重複元素 83

刪除排序鍊錶中的重複元素 ii 82

刪除鍊錶的節點(節點值不重複,只刪除給定值)面試題18

3 兩兩交換鍊錶中的節點//反轉鍊錶 24、206

旋轉鍊錶 61

反轉鍊錶(反轉指定位置的鍊錶)92

4 合併兩個有序鍊錶 21

合併k個排序鍊錶 23

5 分隔鍊錶 725

6 兩個鍊錶求和 (個位數在右邊 需要用棧)445

兩鍊錶求和(個位數在左邊無需用棧) 2

7 鍊錶元素按奇偶位置聚集 328

分隔鍊錶 (相對於給定值的大小)86

8 判斷鍊錶是否有環 141

找出環形鍊錶的入口節點 142

找出兩個無環鏈表的焦點 160

10對鍊錶進行插入排序 147

11 複雜鍊錶的複製(牛客)

鍊錶專題 4 鍊錶

鍊錶是一大堆節點合起來連起來組成的表的總稱。其中每個節點中都有指標變數指向列表中的下乙個節點。鍊錶中第乙個節點被稱之為表頭 head 所以將第乙個節點的指標變數命名為head。最後乙個節點並沒有神馬特殊的名字,但是它 最後乙個節點 有一項特殊的屬性 最後乙個節點將null作為最後乙個變數的值 所以檢...

leetCode 鍊錶專題

sort a linked list in o n log n time using constant space complexity.用歸併排序 其中只是建立了乙個prehead節點 占用空間o 1 時間o nlogn public class solution 常規合併排序思路 listnod...

LeetCode 鍊錶專題

返回兩個鍊錶相交的節點 class solution object def getintersectionnode self,heada,headb type head1,head1 listnode rtype listnode if not heada and not headb return ...