本文主要是介绍如何判断两个有环链表是否相交,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如何判断两个有环链表是否相交
问题
如何判断两个有环链表是否相交,相交则返回第一个相交节点,不相交则返回null。
思路
我们已经得到了两个链表各自的第一个入环节点,假设链表1的第一个入环节点为loop1,链表2的第一个入环节点为loop2。具体如下:
1.如果loop1 == loop2,拓扑结构如图:
该情况下,考虑链表1从头开始到loop1这一段与链表2从头开始到loop2这一段,在哪里第一次相交即可。这与判断两个无环链表是否相交类似,只是这里把loop1(loop2)作为判断终止条件。
2.如果loop1 != loop2,两个链表不相交的拓扑结构如图:
case1 | case2 |
---|---|
需要分辨是哪种情况,进入步骤3。
3.让
这篇关于如何判断两个有环链表是否相交的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!