1.7 Linked List Cycle

Description

Given a linked list, determine if it has a cycle in it.

Follow up: Can you solve it without using extra space?

Method

fast slow pointers run just like clock if there is a cycle two pointers will meet

Time and Space Complexity

O(n + n)

Code

public class Solution {

public boolean hasCycle(ListNode head) {
    if (head == null || head.next == null){
        return false;
    }
    ListNode slow = head;
    ListNode fast = head;
    while (fast != null && fast.next != null){
          slow = slow.next;
          fast = fast.next.next;

          if (slow == fast){
              return true;
          }
    }
    return false;

}

}

results matching ""

    No results matching ""