Leetcode 142 circular lista II vinculado

Descripción Asunto:

Dada una lista, devuelva el primer nodo en el comienzo del anillo de la cadena. Si la cadena acíclica, se devuelve NULL. (Espacio adicional NA)

solución:

algoritmo de Floyd

1. Averiguar si existe una lista de los anillos de dedo de velocidad.

2. Uso encuentro Encontrado identificar anillo de entrada nodos Paso.1.

Paso.2 prueba que voy a robar leetcode en el mapa para la solución del problema

 

 

Código de CA:

clase de soluciones {
 público : 
    NodoLista * fisrtM (NodoLista * cabeza) 
    { 
        NodoLista * lento; 
        NodoLista * más rápido; 
        lentos = más rápidas = cabeza;
        mientras que (= más rápido! NULL) 
        { 
            ralentizar = lento> siguiente;
            si (rápido-> siguiente == NULL) de retorno NULL; 
            más rápido = más rápido-> next-> siguiente;
            si (== lento más rápido) volver lenta; 
        } 
        regresoNULO; 

    } 
    NodoLista * detectCycle (NodoLista * cabeza) {
         si (la cabeza == NULL) de retorno NULL; 
        NodoLista * fm = fisrtM (cabeza);
        si (fm == NULL) de retorno NULL; 
        NodoLista * ans = cabeza;
        mientras que (ans =! fm) 
        { 
            ans = Respuesta-> siguiente; 
            fm = fm-> siguiente; 
        } 
        Devolver ans; 
        
    } 
};

 

Supongo que te gusta

Origin www.cnblogs.com/z1141000271/p/12454262.html
Recomendado
Clasificación