图只有一个根并以以下格式保存:
0 -> 1,
0 -> 2,
1 -> 3,
1 -> 4,
2 -> 4,
2 -> 5,
4 -> 5,
5 -> 2 (This is the cycle)
用Java来检测图中是否存在至少一个循环的最有效方法是什么?谢谢!
最佳答案
正如评论中提到的,可能是某种DFS,比如
SET isCyclic to false
DFS(node)
IF isCyclic is true THEN
RETURN
FOR each neighbor in node.neighbors
IF node.visited is true THEN
SET isCyclic to true
RETURN
SET neighbor.visited to true
DFS(neighbor)