Invierte una linked list simple de forma iterativa. Explica los punteros.
Respuesta
- Mantén
prev = Noneycurr = head. - Bucle: guarda
nxt = curr.next, apuntacurr.next = prev, y luego mueveprev = curr,curr = nxt. - Cuando
curres None,preves 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