这个用于清空链表的代码可以吗?

Is this code for emptying a linked list okay?

本文关键字:代码 用于 清空 链表      更新时间:2023-10-16

我需要处理一个在不完全消除链表的情况下重置链表的函数,我想知道我的代码段是否正确。还有其他建议吗?

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_front()\erase()方法pop_back()因此可以不编写一些新的附加逻辑,而是将现有逻辑与任何循环一起使用,如下所示:

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
}