读书人

链表相交的定义是什么? 1 2 3 4 5 6

发布时间: 2012-09-17 12:06:51 作者: rapoo

链表相交的定义是什么? 1 2 3 4 5 6 和 0 1 3 5 6 是否相交呢?
链表相交的定义是什么? 1 2 3 4 5 6 和 0 1 3 5 6 是否相交呢?

[解决办法]
假如相交,并且把第一个弄成环链表,那么第二个也会变成环链表



飞燕算法群:46520219
[解决办法]
链表相交的定义是什么? 1 2 3 4 5 6 和 0 1 3 5 6 是否相交呢?
===========================================
你这种情况是不可能存在的,节点 1 的next不可能一会是 2 一会是3

如果没有环,那两个链表相交只能是一个Y型的。



一、将其中一个链表首尾相连,检测另外一个链表是否存在环,如果存在,则两个链表相交,而检测出来的依赖环入口即为相交的第一个点。

给解释一下这种方法。不太懂.

===================================================
因为如果相交,那最后一个节点肯定是一样的,把这个尾节点的next指向一个链表的头后,那这个链表就变成一个环了,因为从另一个链表的头能到相同的那个尾节点,所以最后也会进入第一个链表组成的那个环。

个人感觉还是第二种方法好,因为要检测是否有环,也需要O(n)的时间。

[解决办法]
一般链表相交是针对 节点在内存中的实际存储位置来说的;

跟节点的值是否相同没必然的联系,当然相交后的节点的值跟地址肯定是一样的;

若两链表都有节点存储在相同的内存地址,则必然相交;

读书人网 >软件架构设计

热点推荐