Я использую двусвязный список и пытаюсь удалить узел на основе ввода пользователя.Значение передается по ссылке на функцию с именем remove.Однако написанный мной код не работает со значением, переданным по ссылке ... или, возможно, я неправильно его инициализирую.Я получаю сообщение об ошибке "_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;
}
}