利用两个链表交叉的性质,若两个链表交叉,从链表的交叉点到链表尾部,都是相同的节点,因此,链表形状是Y型。
具体做法:首先计算出两个链表的长度之差,n,让长的链表先移动n步,短的链表再依次向后遍历,这样它们同时到达第一个公共节点,在向后移动的过程中比较两个链表的节点是否相等就可以获得第一个公共节点。时间复杂度是O(m+n)(链表长度分别为m,n)
2.人为构环,将链表A的尾结点指向链表B,判断是否构成环,从链表B的头指针往下遍历,如果能够回到B,则说明相交。
通过判断最后一个节点是否相等来判断是否交叉。
网友评论