环形链表 II
题目
解题思路
public ListNode detectCycle(ListNode head) {
ListNode fast = head, slow = head;
ListNode meetNode = null;
while (fast != null && fast.next != null) {
fast = fast.next.next;
slow = slow.next;
if (fast == slow) {
meetNode = fast;
break;
}
}
if (meetNode == null) {
return meetNode;
}
while (head != meetNode) {
head = head.next;
if (head == meetNode) {
break;
}
meetNode = meetNode.next;
}
return meetNode;
}Last updated