之前已經對鍊錶相關常用操作進行了總結。在這裡,對 leetcode 與鍊錶相關的題目解答思路進行總結。
1. 兩個鍊錶,求是否有相交的節點並返回
方案一:將兩個鍊錶的各節點依次存入兩個物件中,然後雙層迴圈查詢是否存在有相同的節點;
方案二:先求出兩個鍊錶各自長度,將長鍊錶先向尾部移動至和短鍊錶同樣長度的位置,然後遍歷兩個鍊錶至找到相同的節點,否則返回 null;
2. 鍊錶求環
方案一:將鍊錶各節點存入物件中,插入物件前先查詢節點是否已存在?直至待插入的節點在物件中已存在,此時節點即為待求節點。
方案二:快慢指標賽跑法
3. 根據某 val,將鍊錶劃分成兩部分
方案一:利用臨時頭結點,將鍊錶兩部分分別存入兩個臨時鍊錶中,再將其連線。
LeetCode單鏈表相關題目
目錄 1.移除鍊錶元素 刪除鍊錶中等於給定值val的所有節點 2.反轉乙個鍊錶 3.找出鍊錶的中間結點 4.輸出鍊錶中倒數第k個結點 5.合併兩個有序鍊錶,合併後依然有序 6.找出兩個單鏈表相交的起始結點 輸入 1 2 6 3 4 5 6,val 6 輸出 1 2 3 4 5 definition ...
leetcode鍊錶相關經典習題
141.給定乙個鍊錶,判斷鍊錶中是否有環。public class solution listnode fast head listnode slow head while fast null fast.next null return false 142.給定乙個鍊錶,返回鍊錶中第乙個入環的節點,...
LeetCode鍊錶相關問題總結
獲取鍊錶的長度 兩種方法 listnode frist head int length 0 先獲得鍊錶的長度 while frist null 或者 listnode frist head int length 1 先獲得鍊錶的長度 while frist.next null 區別就是使用第二種方法...