如何使用引用传递的值更新到doublylinkedlist内取出发生

问题描述 投票:0回答:1

我使用的是双向链表,我试图删除基于用户输入的一个节点。该值通过引用传递给函数命名删除。不过,我写的代码似乎不通过引用传递的值工作...或许我没有正确初始化。我得到的“错误错误:‘_ret’在此范围内未声明”

void DoublyLinkedList::remove(const string& s)
{
 if (current == nullptr){
   //return nullptr;
}
 Node *next_ = current->next;
 Node *prev_ = current->prev;
 //I THINK THIS IS WHERE I AM WRONG???
 _ret = Node(s);
 _ret = nullptr;
 //s _ret = nullptr;


 if (next_ != nullptr && prev_!=nullptr){
 current->prev->next = current->next;
 current->next->prev = current->prev;
 delete current->data;
 delete current;
 current = next_;
 _ret = current->data;
 }
 else if (next_ == nullptr && prev_==nullptr){
   this->head = this->tail = nullptr;
   delete current->data;
   delete current;
   current = nullptr;
   _ret = nullptr;
 }
 else if (next_ != nullptr && prev_ == nullptr){
   head = head->next;
   head->prev = nullptr;
   delete current->data;
   delete current;
   current = next_;
   _ret = current->data;
}
else if (next_ == nullptr && prev_ != nullptr){
   tail = tail->prev;
   tail->next = nullptr;
   delete current->data;
   delete current;
   current = nullptr;
   _ret = nullptr;
 }
}
c++ compiler-errors nodes doubly-linked-list
1个回答
0
投票

编译器是正确的,你有没有在函数声明_ret。这意味着,你没有提供的变量的类型。

另外,这是某种锻炼来实现的名单?如果没有,你为什么不干脆用std::list

© www.soinside.com 2019 - 2024. All rights reserved.