typestar

Invertir una lista en el lugar en C

Tres punteros recorren la lista una vez, volteando cada enlace al pasar.

typedef struct Node {
    int value;
    struct Node *next;
} Node;

Node *reverse(Node *head) {
    Node *prev = NULL;
    while (head != NULL) {
        Node *next = head->next;
        head->next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

Cómo funciona

  1. next se guarda antes de sobrescribir el enlace.
  2. prev viene detrás y se convierte en la nueva cabeza.
  3. No se reserva memoria en absoluto.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
217
Tokens
67
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 40 segundos.

Escribe este fragmento

Paso 3 de 5 en Listas y pilas; paso 8 de 20 en Estructuras de datos y algoritmos.

← Anterior Siguiente →