劍指 Offer 52 兩個鍊錶的第乙個公共節點

2021-10-14 03:55:39 字數 466 閱讀 7208

集合法:將鍊錶a存入集合中,然後遍歷b,找到第乙個包含在集合中的節點。

長鍊表先行法:統計兩個鍊錶的個數,讓長的鍊錶先走,等到長鍊錶走到跟短鍊錶長度相同時,兩個鍊錶同時出發,判斷兩個節點是否相等,相等即可返回該節點。

雙指標法:a、b同時出發,當a到達末尾(空節點)時,就讓a回到b的頭結點繼續走,同樣的,b到達末尾時,就回到a的頭結點繼續走,這樣a和b在到達公共節點時走過了相同的步數,a、b就同步了,當a=b時即可(可能是公共節點或者空節點)。

public class solution 

return a;}}

劍指offer 52 兩個鍊錶的第乙個公共結點

輸入兩個鍊錶,找出它們的第乙個公共結點。說明 應該是兩個單向鍊錶,成y字型,不會成x型,也不會成環。鍊錶只能從表頭單向訪問,可以利用棧的後進先出特性來實現,把兩個鍊錶壓入棧再彈出來,但是那樣需要兩個輔助棧,如果兩條鍊錶的長度分別是m和n,則需要m n個輔助棧空間,同時時間複雜度為o m n 使用兩個...

劍指Offer 52 兩個鍊錶的第乙個公共節點

輸入兩個鍊錶,找出它們的第乙個公共節點。例 1 2 3 6 7 4 5 公共節點為6。遍歷鍊錶a,將每個節點存入乙個雜湊表。再遍歷鍊錶b,繼續向雜湊表內儲存,當出現衝突時,即找到了第乙個公共節點。時間複雜度 o m n 空間複雜度 o m n 遍歷鍊錶a,每個節點都在b中遍歷查詢,直到有乙個a中節點...

劍指offer 52 兩個鍊錶的第乙個公共節點

面試題52.兩個鍊錶的第乙個公共節點 難度簡單37 輸入兩個鍊錶,找出它們的第乙個公共節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 referen...