botón de encendido 22. La lista de preguntas cara explicaciones ligado nodo k bis penúltima 100%

vía rápida: https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

tema:

Introducir una lista enlazada, el ligado lista de salida penúltimo nodo k. Con el fin de cumplir con el hábito de la mayoría de la gente, esta cuestión cuenta a partir de 1, que es el final de la lista de nodos es el nodo penúltima. Por ejemplo, una lista enlazada tiene seis nodos, los nodos de empezar de cero, sus valores son secuencialmente 1,2,3,4,5,6. La lista de nodos es el valor recíproco de la tercer nodo 4.

 

Ejemplo:

Dada una lista: 1-> 2-> 3-> 4-> 5, y k = 2.

La lista resultante 4-> 5.

Análisis: El objeto de la solicitud es encontrar un puntero a los primeros nodos k. Podemos construir un puntero tmp, que vaya k veces, y luego dejar que el puntero del puntero tmp cabeza para ir al mismo tiempo, cuando tmp está vacía, también se desea puntero de cabecera

La complejidad de tiempo de O (N) complejidad espacio de O (1)

/ * * 
 * Definición de la lista simplemente enlazada. 
 * Estructura NodoLista { 
 * int val; 
 * * NodoLista siguiente; 
 * NodoLista (int x): val (x), al lado (NULL) {} 
 *}; 
 * / 
Clase de soluciones {
 público : 
    NodoLista * getKthFromEnd (* NodoLista cabeza, int k) {
         int pre = 0 , última = 0 ; 
        NodoLista * tmp = nuevo NodoLista (); 
        tmp = cabeza;
        mientras que (pre =! k) { 
            tmp = TMP-> siguiente; 
            pre ++; 
        } 
        , Mientras que (tmp =! NULL) { 
            tmp = TMP-> siguiente; 
            dirigirse = cabeza-> siguiente; 
        } 
        Volver la cabeza; 
    } 
};

 

Supongo que te gusta

Origin www.cnblogs.com/ken-liu/p/12545430.html
Recomendado
Clasificación