图只有一个根并以以下格式保存:

0 -> 1,
0 -> 2,
1 -> 3,
1 -> 4,
2 -> 4,
2 -> 5,
4 -> 5,
5 -> 2 (This is the cycle)

用Java来检测图中是否存在至少一个循环的最有效方法是什么?谢谢!
java - 单根有向无环图周期检测-LMLPHP

最佳答案

正如评论中提到的,可能是某种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)

08-26 08:05