思路:
这道题就是判断链表中是否有环,首先使用集合肯定可以快速地解决,比如通过一个set集合遍历,如果遍历过程中有节点在set中已经存在那么说明存在环。返回这个节点即可
第二种方式就是通过快慢指针方式寻找环。如何做呢?
代码如下:
public class Solution {public ListNode detectCycle(ListNode head) {if (head==null||head.next==null||head.next.next==null){return null;}ListNode slow=head.next;ListNode fast=head.next.next;while (slow!=fast){if (fast.next==null||fast.next.next==null){return null;}slow=slow.next;fast=fast.next.next;}fast=head;while (slow!=fast){slow=slow.next;fast=fast.next;}return slow;}
}