题目的链接在这里:https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
- 题目大意
- 一、示意图
- 二、解题思路
- 正常情况
题目大意 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。
一、示意图 二、解题思路
快慢指针正常情况
代码如下:
public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
//先进行一些边界判断
if(pHead==null||pHead.next==null||pHead.next.next==null)
return null;
//环的入口 这里就用到了快慢指针
ListNode slow=pHead.next;
ListNode fast=pHead.next.next;
while (slow!=fast){
slow=slow.next;
fast=fast.next.next;
}
//直到两个人相遇 fast就变正常 slow就从原地出发
slow=pHead;
while (slow!=fast){
slow=slow.next;
fast=fast.next;
}
return slow;
}
}


![java 剑指offer之[数据结构 中等]JZ55 链表中环的入口结点 java 剑指offer之[数据结构 中等]JZ55 链表中环的入口结点](http://www.mshxw.com/aiimages/31/285372.png)
