题目:
找出两个单向链表相交的位置
请考虑周全
提示:
除了普通情况外,还要考虑环以及2者首尾相连。
参考答案:
最普通的情况下,可以这样做:
2. 假设长度差为n,扫描长的链表n个节点。
3. 同时扫描两个链表,碰到第一个相同的就是公共节点。
如果有环呢?(别人的方法)
都没环上面的方法如上,找长度差
都有环就重复环检测,然后重合的点往前走,要是再回到原来点以前碰到了另一个链表的重合点就说明有环
找重合点很简单,找到环开始点,如果两个链表的环开始点不一样,那说明重合的是整个环,否则,重复没环的情况
有环的话,还可以(我的方法):
找到任意环中的点,以此作为终点,应用没有环的方法