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

2021-09-27 09:43:14 字數 560 閱讀 9445

題目描述

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

分析:

雙指標法

假設現在存在兩個鍊錶l1和l2,先遍歷l1和l2得到鍊錶長度n和m,現在有兩個指標p1和p2分別指向l1和l2的頭結點,假設現在n>m,那麼先讓p1先走n-m步,然後兩個結點一起走,當p1和p2指向的結點是同乙個結點的時候,那麼該結點就是雙鏈表的第乙個公共結點

時間複雜度:o(n+m)

listnode* findfirstcommonnode( listnode* phead1, listnode*phead2)

while(p2!=null)

//長的鍊錶上的指標先走abs(n-m)步

p1=phead1;

p2=phead2;

if(n>m)

}else

if(n}

//然後一起走,當p1和p2指向的是同乙個結點的時候,該結點就是第乙個公共結點

while(1

)

}return

p1;}

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

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。解題思路 用兩重迴圈,對第乙個鍊錶的每乙個結點都進行第二個鍊錶所有結點的遍歷,若發現結點相等,則將結點返回 public listnode findfirstcommonnode listnode phead1,listnode phead2 phe...

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

輸入兩個鍊錶,找出它們的第乙個公共結點。公共節點指的是節點的指標相同 節點本身相同 而不是節點的內容相同。如果考慮暴力的方法,對於鍊錶1的每個元素,去遍歷鍊錶2,找出第乙個公共節點,這樣時間複雜度為o mn 計算開銷大 m,n分別為兩個鍊錶的長度 考慮具有公共節點的鍊錶的特徵 如果兩個鍊錶有公共節點...

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

題目延伸 程式設計之美中的求兩個節點是否相交 將兩個節點串在一起,若有節點,串在一起的節點就會出現環,利用一二不長不等,兩個節點在環中必然相遇。本題描述 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 乙個簡單的方法是 首先遍歷兩個鍊錶得到它們的長度,就能知道哪個鍊錶比較長,以及長的鍊錶比短的鍊錶多幾...