每日一題 4 鍊錶相交問題

2021-09-30 14:29:42 字數 593 閱讀 6615

//判斷兩個鍊錶是否相交,若相交,求交點。(假設鍊錶不帶環)

pnode iscrosswithcircle(pnode phead1, pnode phead2)

else}}

while (pcur != pret)

return pcur;

}//判斷兩個鍊錶是否相交,若相交,求交點。(假設鍊錶可能帶環)【公升級版】

int checkcrosswithcircle(pnode phead1, pnode phead2)//判斷鍊錶是否相交(有可能帶環)  

while (p2->next)

if (p1 == p2)

return 1;

else

return 0;

}else if ((null == pmeetnode1 && pmeetnode2) ||

(null == pmeetnode2 && pmeetnode1))//乙個帶環乙個不帶環  

return 0;

else//兩個都帶環  

if (pm1 == pm2)

return 2;

else

return 0;}}

每日一題 判斷兩個鍊錶相交

判斷兩個單鏈表是否相交 並返回第乙個相交的元素。思路 可以想到,如果兩個鍊錶相交,那麼它肯定是尾部相連,首部分開,就像朝左側臥的 y 形。因此,能夠想到兩種思路,一種是從後往前遍歷鍊錶,直到兩個鍊錶的某個結點元素值不相等,那這個結點的前乙個結點就是第乙個相交的結點。另外一種思路就是從前往後遍歷,首先...

每日一題之鍊錶的相交

判斷兩個鍊錶是否相交,若相交,求交點 如圖所示 1,直接把兩個鍊錶的每乙個節點都遍歷一遍,時間複雜度 o len1 len2 2,hash計數法 兩個鍊錶相交,則兩個鍊錶就會由共同的節點,而節點位址又是唯一的標識,所以判斷兩個鍊錶中是否存在位址一致的節點就可以判斷出是否相交。可以對第乙個鍊錶的節點位...

鍊錶相交問題

1 判斷兩個鍊錶是否相交 假設兩個鍊錶均不帶環 有四種方法 解法1 直觀的想法 判斷第乙個鍊錶的每個節點是否在第二個鍊錶中,這種方法的時間複雜度為o length h1 length h2 解法2 利用計數的方法 對第乙個鍊錶的節點位址進行hash排序,建立hash表,然後針對第二個鍊錶的每個節點的...