LaneYang
1/10/2020 - 12:25 AM

Check If Linked List Has A Cycle.java

public class Solution {
    public boolean hasCycle(ListNode head) {
        // corner case, the linkedlist is null
        if (head == null || head.next == null) {
            return false;
        }
        ListNode slow = head;
        ListNode fast = head;
        // condition: when the fast pointer reach the end, or find the list has cycle.
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
            if (slow == fast) {
                return true;
            }
        }
        return false;
    }
}