/** 面試題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 ...