/guava/android/guava/src/com/google/common/graph/Graphs.java
if ( state == NodeVisitState.COMPLETE ) { return false; }
private static <N> boolean subgraphHasCycle( Graph<N> graph, Map<Object, NodeVisitState> visitedNodes, N node, @CheckForNull N previousNode) { NodeVisitState state = visitedNodes.get(node); <extra_id_0> if (state == NodeVisitState.PENDING) { return true; } visitedNodes.put(node, NodeVisitState.PENDING); for (N nextNode : graph.successors(node)) { if (canTraverseWithoutReusingEdge(graph, nextNode, previousNode)