首页 > 代码库 > 单向链表是否有交点以及查找交点

单向链表是否有交点以及查找交点

如何判断是否有交点?

两个单向链表,如果有交点,那么它们最后的一个结点必定是同一个结点。我们可以找到链表最后一个结点,比较它们是否是同一个结点。

如果两个链表有交点,如何判断交点的位置呢?

把一个链表中的每一个结点与另一个链表的中每一个结点做比较,如果找到相同的,那么这个相同的就是交点了。但是这个算法的时间复杂度为O(mn)。

如果两个链表相交,那么交点的位置到链表末端肯定相同(后面就是同一个链表了)。我们可以把两个链表以尾端为起始位置来对齐。从对齐后,依次比较每一个结点,这样算法复杂度为O(m+n)。


单向链表是否有交点以及查找交点