單鏈表是否相交的問題

2021-09-29 23:27:12 字數 907 閱讀 9878

單鏈表相交分為三種情況。

//單鏈表相交1

node* iscross_nocycle(list list1, list list2)

else

while (gap--)

//一起走

//不同的入口點的情況

//判斷條件:從meetnode1開始遍歷鍊錶,如果找到和meetnode2相等的節點,則證明共用環

//如果相交,返回任意乙個入口點

cur1 = meetnode1->next;

while (cur1 != meetnode1 && cur1 != meetnode2)

if (cur1 == meetnode2)

return entry1;

return null;//不相交

}

test 

int main()

單鏈表判斷是否相交

判斷單鏈表是否有環路可以參考 單鏈表判斷環路及環路的入口 typedef int datatype 節點中資料型別 typedef struct listnode 節點資料結構 listnode typedef struct checknoode checknoode 判斷是否相交 bool che...

判斷單鏈表是否相交

二個單鏈表相交只能是y,不能是x,因為單鏈表每個節點只有乙個指標 問題描述 乙個比較經典的問題,判斷兩個鍊錶是否相交,如果相交找出他們的交點。思路 1 碰到這個問題,第一印象是採用hash來判斷,將兩個鍊錶的節點進行hash,然後判斷出節點,這種想法當然是可以的。2 當然採用暴力的方法也是可以的,遍...

判斷兩個單鏈表是否相交

首先要搞清楚單鏈表相交的概念和特點 指的是他們存在完全重合的部分,不是交叉到乙個點 不存在這種情況,可以想想為什麼 判斷其是否相交的方法有以下幾種。1 最傳統方法 雙重迴圈,依次查詢,是否有位址相同的節點,時間複雜度o list1.len list2.len 空間複雜度o 1 2 hash法 先遍歷...