Home  >  Article  >  Java  >  Check Loop in LinkedList

Check Loop in LinkedList

WBOY
WBOYOriginal
2024-07-17 19:00:15421browse

Check Loop in LinkedList

problem

//tc :O(N) N is the length of the linkedList
//sc:(1) constant space complexity
/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public boolean hasCycle(ListNode head) {
        //we can use double jump to find if loop is present in the loop
        if(head ==null || head.next ==null) return false;
        ListNode node1 = head;
        ListNode node2 = head.next;
        while(node1!=null && node2!=null){
            if(node1==node2) return true;
            node1 = node1.next;
            node2  = node2.next ==null ? null : node2.next.next;
        }
        return false;
    }
}

The above is the detailed content of Check Loop in LinkedList. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn