hasCycle(G):
| Input graph G
| Output true if G has a cycle, false otherwise
|
| choose any vertex v∈G
| return dfsCycleCheck(G,v)
dfsCycleCheck(G,v):
| mark v as visited
| for each (v,w)∈edges(G) do
| | if w has been visited then // found cycle
| | return true
| | else if dfsCycleCheck(G,w) then
| | return true
| end for
| return false // no cycle at v
|