36 兩個鍊錶的第乙個公共結點

2021-09-27 18:44:08 字數 586 閱讀 5901

題目描述:輸入兩個鍊錶,找出它們的第乙個公共結點。

【分析】

上圖就是乙個有公共結點例子,在公共結點之後,兩個鍊錶指標指向的位址相同。

先把長的鍊錶的頭砍掉,讓兩個鍊錶長度相同,這樣,同時遍歷也能找到公共結點。此時,時間複雜度o(m+n),空間複雜度為o(max(m,n))。

/*

struct listnode

};*/

class solution

while(pheadshot!=null && pheadshot!=null && pheadshot!=pheadlong)//遍歷鍊錶,找到相等的節點

return pheadlong;//pheadshot或pheadlong都可以,二者相等

}int getlistlen(listnode* phead)//獲取鍊錶長度函式

return len;}};

36 兩個鍊錶的第乙個公共結點

時間限制 1秒 空間限制 32768k 本題知識點 鍊錶 題目描述 include using namespace std struct listnode 方法一 先對齊結尾後,從前往後比較結點 class solution while p2 對齊尾部,從短的頭部開始比較 p1 phead1 p2 ...

36 兩個鍊錶的第乙個公共結點

題目 輸入兩個鍊錶,找出他們的第乙個公共結點 思路 公共結點是指結點值相同,結點指向的下乙個結點也相同。如果下乙個結點也相同,那麼下乙個結點的值記憶下乙個結點指向的結點也相同。即,從此公共結點開始,兩個鍊錶相遇,且之後的結點都是相同的,也就是重合了。因為結點位址相同,結點值相同,指向的下乙個節點的位...

36 兩個鍊錶的第乙個公共結點

因為兩個鍊錶不一定等長,所以先求出兩個鍊錶的長度。然後求差x,較長的鍊錶先走x部,然後開始比較兩個鍊錶,當遇到相同的結點則返回,一直未遇到則返回null public class listnode public class solution while l2 null if count1 count...