面試題52 兩個鍊錶的第乙個公共節點

2021-08-28 05:43:59 字數 938 閱讀 7879

/*

* 面試題52

:兩個鍊錶的第乙個公共節點

* 題目:輸入兩個鍊錶,找出它們的第乙個公共結點

* 思路:首先遍歷兩個鍊錶得到它們的長度,比較長短。

* 第二遍,在較長的鍊錶上先走若干步,接著同時在兩個鍊錶上遍歷

* 找到的第乙個相同的節點就是它們的第乙個公共節點

*/classlistnode6 }

publicclassno52findfirstcommonnode

publiclistnode6 findfirstcommonnode(listnode6

phead1

, listnode6

phead2)

//遍歷出鍊錶

2的長度

while(

p2!=null)

p1=

phead1;

p2=

phead2;

//鍊錶

2長,先走

if(

size1

<

size2)

}else}

//同時遍歷,直到遇到第乙個相同的節點

while(

p1!=

p2&&

p1!=null&&

p2!=null)

returnp1;

} }

面試題52 兩個鍊錶的第乙個公共節點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。有公共節點的兩個鍊錶在公共節點匯合後,後面的節點均相同,為y型。方法一 消除長度差後,兩者到公共節點距離相同。時間複雜度o m n struct listnode class solution return len listnode findfirs...

面試題52 兩個鍊錶的第乙個公共節點

輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式 顯示的,保證傳入資料是正確的 考察點 時間空間複雜度分析 鍊錶程式設計。思路 一開始想到的是遍歷其中一條鍊錶,找到乙個節點,就去另一條鍊錶中去找相同的,這樣的複雜度比較高。所以借用前文的思路,既然是找...

面試題52 兩個鍊錶的第乙個公共節點

輸入兩個鍊錶,找出它們的第乙個公共節點。方法 雙指標法 比較簡單,考研也練習過 public listnode getintersectionnode listnode heada,listnode headb while pb null pa heada pb headb int gofirst ...