private void checkCycleState() {
		if (!isEmpty() && unvisitedIndependentSet.isEmpty() && visitedButNotDeletedCount == 0) {
			throw new IllegalStateException("Cycle detected!");
		}
	}
Removes and returns a value that has no dependencies from the graph.  If the graph is empty
or all the nodes without dependencies are currently visited, then null will be returned.
NOTE: If the getUnvisitedIndependentValues() method has been called(), this method may
return null until all those "visited" nodes are removed from the graph.  
@return return an arbitrary value that has no dependencies and hasn't been visited or null.
Ghidra/Framework/Generic/src/main/java/ghidra/util/graph/AbstractDependencyGraph.java