Algoritmo práctica deliberada -LeetCode real 11- para eliminar la lista de la penúltima nodo N (C ++)

Tema: la supresión de la lista penúltima N nodos vinculados

Enlace a la pregunta original: la lista penúltima N nodos vinculados de borrado

Hay dos enfoques a esta pregunta, una y dos veces transversal poligonal.

El método de atravesar dos intuitivo: el primer paso para obtener el número de nodos, de manera que el número de nodo penúltimo en el número de varios nodo positivo; segunda pasada a través de la variable sólo cuando está siendo atravesada un registro nodo es el primero de varios, si debe ser eliminado antes de un nodo, por lo que el dominio actual campo de puntero nodo puede ser un puntero al siguiente nodo.

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        int num = 0;
        ListNode *p = head;
        while(p != NULL)
        {
            num++;
            p = p->next;
        }
        if(num == 1) return NULL; //特判:链表只有一个节点
        if(n == num) return head->next; //特判:删除第一个节点
        int count = 1;
        p = head;
        while(count < num - n)
        {
            count++;
            p = p->next;
        }
        p->next = p->next->next;
        return head;
    }
};

Un método de desplazamiento no es difícil de entender, pero muy inteligente, que es usar las dos manos. 1 puntero al nodo n-ésimo, No. 2 puntero al primer nodo. A continuación, iniciar de desplazamiento, N ° 1 cuando el puntero de cola al nodo, el puntero apunta exactamente 2 n penúltimo nodo. Lazy ~ ~ Ya no se reproducen.
La respuesta oficial: borrar la lista del nodo N penúltima

digresión:

Los llamados esfuerzos es la actividad activa y propositiva.
- Haruki Murakami

Publicado 16 artículos originales · ganado elogios 0 · Vistas 276

Supongo que te gusta

Origin blog.csdn.net/DZZ18803835618/article/details/104789936
Recomendado
Clasificación