Meglio, comunque, usare la versione iterativa:

codice:
void FreeList(List *head)
{
	List *n1 = head, *n2;

	while ( n1 != NULL )
	{
		n2 = n1->next;
		free(n1);
		n1 = n2;
	}
}