環形鍊錶相關題型總結

2021-10-21 00:27:50 字數 843 閱讀 6605

leetcode_141:判斷鍊錶是否有環?

leetcode_142:找到環形鍊錶的入口

求出環形鍊錶的長度

將環形鍊錶變成單鏈表

參考資料:

第1題的關鍵在於利用快慢指標,若快指標能追上慢指標,則說明有環;

第2題的關鍵在於當快慢指標第一次相遇時,再利用乙個新的entry指標指向head,讓其與慢指標slow同頻率前進直到相遇,則相遇點即為環形鍊錶的入口;

第3題主流的解法有兩種:

第4題的解法是基於第2題的解法——找到環入口的上乙個結點,並把其的next域賦值為null,斷鏈即可。

class

solution

return

false;}

}

class

solution

return entry;}}

return null;

}}

class

solution

return len;}}

return0;

}}

class

solution

slow.next = null;

break;}

}return head;

}}

力扣總結 環形鍊錶相關題目

1.160.相交鍊錶 編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the nod...

LeetCode鍊錶相關問題總結

獲取鍊錶的長度 兩種方法 listnode frist head int length 0 先獲得鍊錶的長度 while frist null 或者 listnode frist head int length 1 先獲得鍊錶的長度 while frist.next null 區別就是使用第二種方法...

LeetCode 鍊錶相關題目總結

之前已經對鍊錶相關常用操作進行了總結。在這裡,對 leetcode 與鍊錶相關的題目解答思路進行總結。1.兩個鍊錶,求是否有相交的節點並返回 方案一 將兩個鍊錶的各節點依次存入兩個物件中,然後雙層迴圈查詢是否存在有相同的節點 方案二 先求出兩個鍊錶各自長度,將長鍊錶先向尾部移動至和短鍊錶同樣長度的位...