Почему бы не скомпилировать код, попробовать и посмотреть, что получится?Худшее, что может случиться, - это сбой вашей программы, и вы должны выяснить, почему.
Ваш код должен в основном работать, за исключением того, что вам нужно проверить current
в состоянии цикла while вместо current->next
и излишне (и, вероятно, неправильно) писать delete this
в деструкторе, и есть еще несколько ошибок, которые Cat Plus Plus указал в своем ответе.
Если вы пытаетесь изучать C ++, тогдавам следует больше узнать об этом, чтобы понять, какие ошибки вы допустили, и уверены, что исправленный код будет работать.
Вот моя фиксированная версия функции:
template <typename T> LinkedList<T>::~LinkedList()
{
Node<T> * current = this->first;
while(current != 0) {
Node<T> * temp = current->next;
delete current;
current = temp;
}
delete this;
}