一、题目
二、代码
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution
{
public ListNode detectCycle(ListNode head)
{
if(head==null) return null;
if(head.next == null) return null;
ListNode false_node = new ListNode(0);
false_node.next = head;
ListNode slow = false_node;
ListNode fast = false_node;
//两层while跳转两次不可取
while(fast != null)
{
fast = fast.next;
if(fast != null)
{
fast = fast.next;
slow = slow.next;
if(fast == slow)
{
System.out.println("进入最终");
ListNode new_node1 = false_node;
ListNode new_node2 = slow;
while(new_node1 != new_node2)
{
new_node1 = new_node1.next;
new_node2 = new_node2.next;
System.out.println("寻找");
}
System.out.println("进入最终且跳出");
return new_node1;
}
}
}
return null;
}
}