Repaso
English

Invierte una linked list simple de forma iterativa. Explica los punteros.

Respuesta

  • Mantén prev = None y curr = head.
  • Bucle: guarda nxt = curr.next, apunta curr.next = prev, y luego mueve prev = curr, curr = nxt.
  • Cuando curr es None, prev es la nueva cabeza.
  • O(n) de tiempo, O(1) de memoria. Una versión recursiva usa O(n) de stack.
def reverse(head):
    prev, curr = None, head
    while curr:
        nxt = curr.next
        curr.next = prev
        prev, curr = curr, nxt
    return prev

Términos clave

Practica esta pregunta en Repaso