您的位置:首页 > 理论基础 > 数据结构算法

数据结构 - 如何判断两个无环单链表是否相交;如果相交,给出相交的第一个结点

2017-09-12 20:57 399 查看

感想

百度机器学习与数据挖掘面试,居然被问到数据机构了,当时没有准备,猜了一个答案,好像沾到边了。不知道面试官认不认可呢,我反正说的是那个意思。
百度了一下,找了一下答案。

求解

比较好的方法有两个:
将其中一个链表首尾相连,检测另外一个链表是否存在环;如果存在,则两个链表相交,而检测出来的环入口即为相交的第一个结点。
如果两个链表相交,那个两个链表从相交点到链表结束都是相同的节点。我们可以先遍历一个链表,直到尾部,再遍历另外一个链表,如果也可以走到同样的结尾点,则两个链表相交。这时我们记下两个链表的长度,再遍历一次。长链表节点先出发前进(长链表长度-短链表长度)步,之后两个链表同时前进,每次一步,相遇的第一点即为两个链表相交的第一个点。

参考文献

[1].数据结构 - 如何判断两个无环单链表是否相交;如果相交,给出相交的第一个结点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐