A directed graph without any cycle is a Directed Acyclic Graph (DAG). If there is a cycle, then there will be a back edge, which goes backwards. For such edge(u,v), postorder number for *u* will be smaller than that of *v*, i.e. *post(u) < post(v)*.

So after DFS, if any edge satisfies *post(u) < post(v)* , then there exists a cycle in the graph, so this is not DAG.

Time complexity *O(|V|+|E|)* + O(|V|) which finally becomes *O(|V|+|E|)*