这段清空链表的代码可以吗?

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
}