天天看點

連結清單

1、單連結清單的建立

連結清單
連結清單

view code

2、求單連結清單的長度

連結清單
連結清單

3、單連結清單的插入

連結清單
連結清單

4、單連結清單的删除

連結清單
連結清單

5、查找單連結清單的第i個結點

連結清單
連結清單

6、查找單連結清單的中間節點

連結清單
連結清單

7、查找單連結清單中倒數第k個元素

連結清單
連結清單

8、單連結清單反轉

連結清單
連結清單

9、逆序輸出單連結清單元素

連結清單
連結清單

10、判斷單連結清單是否存在環

連結清單
連結清單

11、求環的長度

第一次相遇後,讓fast停着不走了,slow繼續走,記錄到下次相遇時循環了幾次。

連結清單
連結清單

12、求有環單連結清單的長度

連結清單
連結清單

13、求環的入口結點

連結清單
連結清單

14、合并兩個有序單連結清單

(1)非遞歸

連結清單
連結清單

(2)遞歸

連結清單
連結清單

15、删除單連結清單的重複結點

(1)保留一個重複的結點

遞歸實作:

連結清單
連結清單

非遞歸實作:

連結清單
連結清單

(2)不保留重複結點

連結清單
連結清單
連結清單
連結清單

16、判斷兩個連結清單是否交叉

單連結清單相交是指兩個連結清單存在完全相同的部分(不是相交與一個結點)

判斷單連結清單相交有兩種方法:

方法一:将兩個連結清單的首尾相連,監測是否有環

連結清單
連結清單

方法二:如兩個單連結清單相交,那麼從相交結點開始到連結清單結束都是相同的結點,必然是y字形,判斷兩個連結清單的最後一個結點是否相同即可。

連結清單
連結清單

17、交換單連結清單中任意兩個結點

連結清單
連結清單

 18、雙向連結清單的插入

連結清單
連結清單

繼續閱讀