判断两个链表是否相交
假设链表无环.
1.
判断第一个链表的每个节点是否在第二个链表中。这种方法的时间复杂度为O(Length(h1) * Length(h2)).
2.
把第二个链表接在第一个链表后面,如果得到的链表有环,则说明这两个链表相交。问题转化为判断一个链表是否有环.如果有环,则第二个链表的表头一定在环上,我们只需要从第二个链表开始遍历,看是否会回到起始点就可以判断出来.
3.
如果两个没有环的链表相交于某一节点的话,那么在这个节点之后的所有节点都是两个链表所共有的.先遍历第一个链表,记住最后一个节点。然后遍历第二个链表,到最后一个节点时和第一个链表的最后一个节点做比较,如果相同,则相交,否则,不相交。复杂度为O((Length(h1) + Length(h2)).
浙公网安备 33010602011771号