Написание деструктора LinkedList?

Это действительный деструктор LinkedList? Я все еще смущен ими.

Я хочу убедиться, что я правильно понимаю.

 LinkedList::~LinkedList()
 {
   ListNode *ptr;

   for (ptr = head; head; ptr = head)
   {
     head = head->next
     delete ptr;
   }
}

Таким образом, в начале цикла указатель ptr устанавливается для хранения адреса заголовка, первого узла в списке. Затем заголовок устанавливается на следующий элемент, который станет началом списка после первого удаления. PTR удаляется, как и первый узел. На первой итерации цикла указатель снова устанавливается в заголовок.

То, что меня беспокоит, - это достижение самого последнего узла. Состояние "голова" должен проверить, что это не нуль, но я не уверен, будет ли это работать.

Любая помощь приветствуется.

Ответы на вопрос(6)

Ваш ответ на вопрос