鍊錶問題的最優解在空間複雜度上,也就是在筆試階段可以利用輔助空間加速計算
public
class
_06_從尾到頭列印鍊錶
int[
] res =
newint
[stackdata.
size()
];for(
int i =
0; i < res.length; i++
)return res;
}}
public
class
_18_刪除鍊錶中的節點
cur = cur.next;
}return headfake.next;
}}
public
class
_22_鍊錶中倒數第k個節點
else
}while
(fast != null)
return slow;
}}
public
class
_24_反轉鍊錶
}
public
class
_35_複雜鍊錶的複製
// 2. 構建各新節點的 random 指向
cur = head;
while
(cur != null)
// 3. 拆分兩鍊錶
cur = head.next;
node pre = head, res = head.next;
while
(cur.next != null)
pre.next = null;
// 單獨處理原煉表尾節點
return res;
// 返回新煉表頭節點
}}
public
class
_52_兩個鍊錶的第乙個公共節點
return pa;
}}
劍指offer 鍊錶
單向鍊錶的結構定義 typedef int datatype struct listnode 問題1 往鍊錶的末尾新增乙個結點 給定頭結點,往末尾插入乙個結點 void insertnode listnode head,datatype key listnode p head while p nex...
劍指offer 鍊錶
鍊錶 鍊錶是一種動態資料結構 struct listnode 往鍊錶的末尾新增乙個節點的c 程式如下 void addtotail listnode phead,int value 注意第乙個引數phead是乙個指向指標的指標。當我們往乙個空鍊錶插入乙個結點時,else pnode m pnext ...
劍指offer 鍊錶
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。思路1 遞迴版 class solution 找到當前節點與下乙個節點不重複的點,從不重複的點開始遞迴 return deleteduplication phead next else 思路2 非遞迴版 ...