判斷2個鍊錶是否相交,如果相交,求出交點

2021-08-31 19:03:10 字數 576 閱讀 9076

如果2個鍊錶相交,一定有相同的尾結點

思路:分別遍歷找到尾結點,比較,若相同則相交,否則不相交。如果相交,求出交點

public class xiangjiao 

public boolean isintersect(node h1,node h2)

//判斷是否相交,如果相交找出交點

public static node getmeetnode(node h1,node h2)

node t2=h2;

int len2=1;

//找鍊錶2的尾結點

while(t2.next!=null)

//如果不相交

if(t1.data!=t2.data)

node t_1=h1;

node t_2=h2;

//找出較長的,先遍歷

if(len1>len2)

}else

}while(t_1.data!=t_2.data)

return t_1;

}}

判斷兩個鍊錶是否相交,若相交,求交點。

第一種情況 兩個鍊錶均不含有環 思路 1 直接法 採用暴力的方法,遍歷兩個鍊錶,判斷第乙個鍊錶的每個結點是否在第二個鍊錶中,時間複雜度為o len1 len2 耗時很大。2 hash計數法 以鍊錶節點位址為值,遍歷第乙個鍊錶,使用 hash 儲存所有節點位址值,結束條件為到最後乙個節點 無環 或 h...

判斷兩個鍊錶是否相交,若相交,求交點。

首先我們來看一下單鏈表 第一種情況 兩個鍊錶均不帶環 判斷兩個不帶環的鍊錶是否相交,如果兩個鍊錶相交的話可如下圖所示 判斷兩個鍊錶是否相交 int isslistcross slistnode phead1,slistnode phead2 相交求交點 兩種方法 法一 因為兩個不帶環鍊錶相交,所以讓...

判斷倆個鍊錶是否相交

程式設計之美 上的一道微軟亞院題,判斷兩個兩個鍊錶是否相交,難度係數低。描述如下 給出倆個單向鍊錶的頭指標,比如h1,h2,判斷這倆個鍊錶是否相交。為了簡化問題,我們假設倆個鍊錶均不帶環。問題擴充套件 1.如果鍊錶可能有環列?2.如果需要求出倆個鍊錶相交的第乙個節點列?邏輯分析 1 先考慮不帶環的鍊...