輸入兩個鍊錶,找出它們的第乙個公共結點。
思路:由於從某個節點開始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...