如果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 先考慮不帶環的鍊...