链表判断环以及环的入口位置
-
判断是否有环: 快慢两个指针–>有环时,快的一定在环上某处追上慢的
-
判断入口位置: 当快的追上慢指针后,再搞一个指针从头开始走,慢的还是继续走,这两个的相遇位置为环入口
1.两个无环无环的链表判断相交的位置
- 首先统计出两个链表的最后一个位置是否为同一个,为同一个才是相交的,不可能出现X的相交情况
然后统计出两个链表的各自长度l1,l2,差值为L
最后让长的先走L,然后再一起走,相遇的位置为环入口
2.两个有环的链表判断相交
-
竟然两个链表首先是有环的,那就先判断出各自环的位置;
-
1.如果两个环的位置相等 ,则是下图的情况
-
2.如果两个环的位置不相等,