gpt4 book ai didi

c++ - 删除链表中的节点 C++

转载 作者:行者123 更新时间:2023-11-28 05:49:33 24 4
gpt4 key购买 nike

所以我很难让它工作,即使在大量谷歌搜索之后我也不能完全让它工作。这是我正在处理的功能:

bool deleteOneOf(const std::string & target)
{
Node * ptr = _first;
Node * temp;
while (ptr != nullptr)
{
if (target != ptr->_entry)
{
temp = ptr;
ptr = ptr->_link;
}
else
{
temp->_link = ptr->_link;
delete ptr->_link;
return true;
}
}
return false;
}

我必须使用的 Node 类是这样的:

class Node
{
public:
std::string _entry;
Node * _link;

Node(std::string entry, Node * link) : _entry(entry), _link(link)
{}
};

非常感谢任何帮助,谢谢。

最佳答案

你还没有初始化温度。如果您正在查看列表中的第一个元素,它将指向垃圾。另外,您需要删除 ptr。固定代码:

bool deleteOneOf(const std::string & target)
{
Node * ptr = _first;
Node * temp = nullptr;
while (ptr != nullptr)
{
if (target != ptr->_entry)
{
temp = ptr;
ptr = ptr->_link;
}
else
{
if (temp)
temp->_link = ptr->_link;
else
_first = ptr->_link;
delete ptr;
return true;
}
}
return false;
}

关于c++ - 删除链表中的节点 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com