题目:
1.给一个单链表,判断其中是否有环的存在;
2.如果存在环,求出环上节点的个数;
3.如果存在环,找出环的入口点;
4.如果存在环,求出链表的长度;
5.如果存在环,求出环上距离任意一个节点最远的点(对面节点);
6.(扩展)如何判断两个无环链表是否相交;
7.(扩展)如果相交,求出第一个相交的节点;
解答:
1.给一个单链表,判断其中是否有环的存在;
- 运用快慢指针来确定:每次快指针走两步,慢指针走一步。
- 如果快慢指针重合,则代表链表有环(如果链表有环,则快指针将一直在环中绕圈,当慢指针进入环中时,速度不一样的两个指针必然重合)
- 如果在快指针