我需要处理一个在不完全消除链接列表的情况下重置链接列表的函数,我想知道我的代码是否正确。还有其他建议吗?
void reset(){
if (initial == nullptr){
return;
}
Node<T> *flag;
Node<T> *temp;
while(initial->obtainNext() != nullptr){
flag = initial->();
temp = flag->obtainNext();
delete flag;
inicial->setNext(temp);
}
initial->setNext(nullptr);
return;
}
据我所知,您正在尝试删除链接列表。1.您可以遍历给定节点并将其全部删除,并将头节点设置为nullptr。2.您可以制作一个包含该链接列表的对象,并可以通过使用方法1擦除所有人来达到目的,但是该对象仍然存在,并且变量设置为nullptr。
我想您已经在您的类中实现了pop_back()
\pop_front()
\ erase()
方法,因此可以不编写一些新的附加逻辑,而是将现有的逻辑与任何循环一起使用,如下所示:
void clear
{
while(this->size) //can be class field which indicates list's size or call size() method
this->pop_front();// can be changed as mentioned above
}