Complejidad computacional de un algoritmo de ruta más larga con un método recursivo

Escribí un segmento de código para determinar la ruta más larga en un gráfico. El siguiente es el código. Pero no sé cómo obtener la complejidad computacional debido al método recursivo en el medio. Como encontrar el camino más largo es un problema NP completo, supongo que es algo así comoO(n!) oO(2^n), pero ¿cómo puedo determinarlo realmente?

public static int longestPath(int A) {
    int k;
    int dist2=0;
    int max=0;

    visited[A] = true;

    for (k = 1; k <= V; ++k) {
        if(!visited[k]){
            dist2= length[A][k]+longestPath(k);
            if(dist2>max){
                max=dist2;
            }
        }
    }
    visited[A]=false;
    return(max);
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta