Cycle in the graph

 static boolean hasCycle(ArrayList<graphNode> graph){
     HashMap<graphNode,Integer> visited = new HashMap<>();
     for(graphNode node : graph)
        visited.put(node,0); 
     for(graphNode node : graph)
       if(visited.get(node)==0)
          if(dfs(node,visited)){ 
            return true;
          }
    return false;

   }
  static boolean dfs(graphNode node, HashMap<graphNode,Integer> visited){
    if(visited.get(node)==1) return true;
    visited.put(node,1);
    for(graphNode neighbor : node.neighbors){
      if(visited.get(neighbor)!=2)
        if(dfs(neighbor,visited)) return true;
    }
     visited.put(node,2);
     return false;
  }

results matching ""

    No results matching ""