这段清空链表的代码可以吗?
Is this code for emptying a linked list okay?
我需要开发一个函数来重置链表而不完全删除它,我想知道我的代码是否正确。还有其他建议吗?
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。
我想您已经在 class 中实现了 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
}
我需要开发一个函数来重置链表而不完全删除它,我想知道我的代码是否正确。还有其他建议吗?
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。
我想您已经在 class 中实现了 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
}