日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

链表相交问题

發(fā)布時間:2023/12/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表相交问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本來想自己寫,寫了一半發(fā)現(xiàn)一篇文章,解釋寫得簡單易懂,我就直接拿過來了。

這個問題值得反復(fù)地寫,鍛煉鏈表coding能力的好題。

?

?

//如果兩個鏈表都不帶環(huán) int NotCycleCheckCross(pLinkNode head1,pLinkNode head2) {pLinkNode list1 = head1->next;pLinkNode list2 = head2->next;if ((NULL==list1 )||(NULL==list2)){return 0; //不相交}while (NULL != list1->next){list1 = list1->next;}while (NULL != list2->next){list2 = list2->next;}if (list1==list2){return 1; //相交}return 0; //不相交 }//鏈表帶環(huán),判斷兩個鏈表是否相交 int CycleCheckCross(pLinkNode meet1, pLinkNode meet2) {pLinkNode cur = meet1->next;if (meet1 == meet2){return 1; //鏈表相交}while ((cur != meet1)&&(cur!=meet2)){cur = cur->next;}if (cur == meet2){return 1; //鏈表相交}return 0; //不相交 } //將上面兩個函數(shù)封裝成一個函數(shù)int CheckCross(pLinkNode head1, pLinkNode head2) //參數(shù)為兩個頭結(jié)點{pLinkNode fast = NULL;pLinkNode slow = NULL;pLinkNode meet1 = NULL;pLinkNode meet2 = NULL;if (head1->next == NULL || head2->next == NULL){return 0; //至少一個鏈表為空鏈表,則兩個鏈表一定不相交}fast = head1->next;slow = head1->next;while (fast&&fast->next) //判斷鏈表head1是否帶環(huán){fast = fast->next->next;slow = slow->next;if (fast == slow){meet1 = fast;break;}}fast = head2->next;slow = head2->next;while (fast&&fast->next) //判斷鏈表head2是否帶環(huán){fast = fast->next->next;slow = slow->next;if (fast == slow){meet2 = fast;break;}}if ((meet1 == NULL) && (meet2 == NULL)) //如果兩個鏈表都不帶環(huán){return NotCycleCheckCross(head1, head2);}else if (meet1&&meet2) //如果兩個鏈表都帶環(huán){return CycleCheckCross(meet1, meet2);}//如果兩個鏈表一個帶環(huán)一個不帶環(huán),則一定不相交直接返回0return 0; //不相交}

原文https://blog.csdn.net/lf_2016/article/details/51756644

總結(jié)

以上是生活随笔為你收集整理的链表相交问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。