public static boolean DFSRecursive(GraphNode n1, GraphNode n2) {
        if (n1 == null || n2 == null) return false;
        n1.isVisited = true;
        if (n1 == n2) return true;
        for (GraphNode child : n1.adjacent) {
            if (!child.isVisited) {
                if(DFSRecursive(child, n2)) return true;
            }
        }
        return false;
    }