Написание деструктора LinkedList?
Это действительный деструктор LinkedList? Я все еще смущен ими.
Я хочу убедиться, что я правильно понимаю.
LinkedList::~LinkedList()
{
ListNode *ptr;
for (ptr = head; head; ptr = head)
{
head = head->next
delete ptr;
}
}
Таким образом, в начале цикла указатель ptr устанавливается для хранения адреса заголовка, первого узла в списке. Затем заголовок устанавливается на следующий элемент, который станет началом списка после первого удаления. PTR удаляется, как и первый узел. На первой итерации цикла указатель снова устанавливается в заголовок.
То, что меня беспокоит, - это достижение самого последнего узла. Состояние "голова" должен проверить, что это не нуль, но я не уверен, будет ли это работать.
Любая помощь приветствуется.