Complexidade computacional de um algoritmo de caminho mais longo com um método recursivo

Eu escrevi um segmento de código para determinar o caminho mais longo em um gráfico. A seguir está o código. Mas não sei como obter a complexidade computacional por causa do método recursivo no meio. Como encontrar o caminho mais longo é um problema completo do NP, presumo que seja algo comoO(n!) ouO(2^n), mas como posso realmente determinar isso?

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);
}

questionAnswers(1)

yourAnswerToTheQuestion