輸入兩個鍊錶,找出他們的第乙個公共結點。
鍊錶結點定義如下:
1思想:我們可以先遍歷一次得到分別得到兩個鍊錶的長度,然後計算得出長度差n,那麼讓較長的鍊錶先走n步,然後兩個鍊錶一起向後走,直到兩個指標指向同乙個結點。這個結點就是我們要找的 結點。具體**如下:struct
listnode
2
1int getlistlength(listnode*phead)29
return
length ;10}
1112 listnode* findfirstcommonnode(listnode* phead1 , listnode*phead2)
1326
for (int i = 0 ; i < lengthdiff ; i++)
2730
31while (plonglisthead != null && pshortlisthead != null && plonglisthead !=pshortlisthead)
3236
37 listnode* pfirstcommonnode =plonglisthead ;
38return
pfirstcommonnode;
39 }
兩個鍊錶的公共結點
題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點 思路 如上圖所示,兩個鍊錶從第乙個公共結點開始,後面的所有結點都是重合的,並且不可能再出現分叉 思路一 在第乙個鍊錶上順序遍歷每個結點,每遍歷乙個結點,就在第二個鍊錶上順序遍歷每個結點,直到找到第乙個公共結點。時間複雜度為o mn 思路二 首先計算出...
兩個鍊錶的公共結點
輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 也就是說兩個鍊錶具有公共的部分 第一種方式就是遍歷兩個鍊錶,找出公共的節點,並且時間複雜度為 o n 2 第二種方式,只需要花費o n 的時間複雜度 首先我們需要準備兩個指...
兩個鍊錶的第乙個公共結點
思路 獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。o m1 m2 public class findfirstcomnode int len1 getnodelength root1 int len2 getnodele...