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

2022-03-06 11:05:36 字數 527 閱讀 5075

劍指offer

contents

輸入兩個鍊錶,找出它們的第乙個公共節點。

如下面的兩個鍊錶:

在節點 c1 開始相交。

注意:這題的難點在於,相交的節點之前的節點數量不同,所以如果兩個指標同時遍歷,不會相遇,也就無從判斷是否是相交節點。

乙個很巧妙的方法是:

兩個指標同時遍歷兩個鍊錶,如果遍歷結束,這個指標就去遍歷另乙個鍊錶。這樣一來,相當於兩個指標在相交節點之前走過的路程是一樣的,正好可以在相交節點相遇。

public

class

solution

return h1;}}

複雜度分析

時間複雜度o(n)

空間複雜度o(1)

劍指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...