Теперь давай посмотрим что происходит:
1. Как только ты вызываешь деструктор для листа он удаляет массив
1.1 Вызывается деструктор для каждого node
1.2 Деструктор не перекрыт, поэтому удаляется УКАЗАТЕЛЬ next, но память привязанная к нему не высвобождается...угу?
Только на будующее: ты бы приводил нормальный код.....А то new list(vz); - вызов несуществующего конструктора....мдя. )
И еще вот тебе ссылка (с кучей исходников с пояснениями), где разобранна (подробно и хорошо) работа со сложными структурами данных: много алгоритмов с исходниками