题目
判断两个链表是否相交,简单的,在无环的情况下。
方法一
暴力的对比两个链表
O(n*m)
方法二
hash表,map,首先使用一个链表建立一个map,存储链表节点的地址。
然后再去遍历另一个链表
这种方法适用于有环,无环,同时还能判断环开始的位置。
首选的方法。
需要额外空间
方法三
如果只需要判断是否相交,不需要输出相交节点集合。
那么可以这样,链表A和链表B,记录A的最后位置,然后将B连接到A的最后位置,
如果有相交的部分,那么新的链表就一定有环。
将问题转化为求新的链表是否有环。
或者直接从B开始遍历,如果能再次叨叨B证明,有相交部分。
方法四
如果两个链表相交,那么假设相交节点为N,那么该节点后面的节点一定都是两个节点共有的。
所以如果相交,那么两个两个链表的最后一个节点就是共有的。
所以只需要判断两个链表最后一个节点是否相等就可以了。
网友评论