Solución:
Una función iterativa para liberar tu lista:
void freeList(struct node* head)
{
struct node* tmp;
while (head != NULL)
{
tmp = head;
head = head->next;
free(tmp);
}
}
Lo que hace la función es lo siguiente:
-
comprobar si
head
es NULL, si es así, la lista está vacía y simplemente regresamos -
Salva el
head
en untmp
variable y hacerhead
apunte al siguiente nodo de su lista (esto se hace enhead = head->next
- Ahora podemos con seguridad
free(tmp)
variable, yhead
solo apunta al resto de la lista, vuelve al paso 1
Simplemente iterando sobre la lista:
struct node *n = head;
while(n){
struct node *n1 = n;
n = n->next;
free(n1);
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)