检查两个单链表是否有交点

思路1:

先遍历第一个链表到他的尾部,然后将尾部的next指针指向第二个链表(尾部指针的next本来指向的是null)。

这样两个链表就合成了一个链表,判断原来的两个链表是否相交也就转变成了判断新的链表是否有环的问题了:即判断单链表是否有环?

思路2:

如果他们相交的话,那么他们最后的一个节点一定是相同的,否则是不相交的。

因此判断两个链表是否相交就很简单了,分别遍历到两个链表的尾部,然后判断他们是否相同,如果相同,则相交;否则不相交。

 

判断出两个链表相交后就是判断他们的交点了。

假设第一个链表长度为len1,第二个问len2,然后找出长度较长的,让长度较长的链表指针向后移动|len1 - len2| (len1-len2的绝对值),然后在开始遍历两个链表,判断节点是否相同即可。

posted @ 2013-11-25 15:50  alexeyqian  阅读(364)  评论(0编辑  收藏  举报