Determine whether there exists a path in a directed acyclic graph that reaches all nodes without revisiting a node
Assume the graph is a directed acyclic graph throughout.
The algorithm is correct
In the first recursion, the algorithm finds a node $u$ that has no incoming edges.
In the second recursion, the algorithm checks whether $p(u)=n$, where for each node $v$, $p(v)$ is 1 plus the length of the longest path starting from that node.
There is a path that reaches all nodes if and only if $p(v)=n$ for some node $v$. Since the graph is acyclic, a path cannot revisit any node. Since the graph is acyclic, if $p(v)=n$ for some node $v$, that node must be the unique node that have no incoming edges. Hence, there is path that reaches all nodes without revisiting a node if and only if $p(v)=n$ for some node that has no incoming edges.
Combining the three paragraphs above, we see that the algorithm is correct.
Two easy exercises

Show that DFS_find(Node) returns $p(\text{Node})$.
Show that there is a path that reaches all nodes if and only if $p(v)=n$ for some node $v$.