鍊錶 尋找2個鍊錶的第乙個公共節點

2021-09-11 08:58:44 字數 473 閱讀 7243

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

思路:由於從某個節點開始2個鍊錶相交,那麼之後的節點完全一樣

先求出2個連表長度  先使得長的鍊錶  先走差值的長度

然後2個指標併排前進,並判斷是否相等,若相等即為第乙個公共節點

(需要注意 null的情況)

class solution 

else

//在2個指標併排前行,直到遇到相等

while(phead1!=phead2 && phead1 && phead2)

return phead1;

}int getlength(listnode* ptr)

return count;

}};

鍊錶的第乙個公共結點

輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 先遍歷兩個鍊錶得到兩個鍊錶的長度,設為k,較長的的鍊錶先走k步。struct listnode class solution while p2 int len len1 l...

鍊錶問題 兩個鍊錶的第乙個公共節點

題目 輸入兩個鍊錶,找出它們的第乙個公共結點 分析 對於這個問題有三種思路 1 蠻力演算法,當遍歷到乙個節點時,就在另外乙個鍊錶上順序遍歷,並且判斷是否相等,如果想等就是第乙個重合的節點,對於兩個長度分別為m和n的鍊錶,所需要的時間為o m n 實現如下 struct listnode 蠻力解法 l...

尋找兩個相交鍊錶的第乙個公共節點

尋找兩個鍊錶的第乙個公共節點.cpp defines the entry point for the console application.1.最簡單的方法就是先順序訪問其中乙個鍊錶,在每訪問乙個節點時,都對另外乙個鍊錶進行遍歷,看節點是否相等 直到找到乙個相等的節點位置,如果鍊錶長度分別是m,n...