为什么我的删除节点函数实际上没有删除节点?
Why isn't my delete node function actually deleting the node?
我试图创建一个更像C链表的链表,但它并没有永久删除节点。当我运行函数后打印出链表时,节点仍然在那里。为什么我的删除节点功能实际上没有删除节点?
bool removeFromList(int delID, node* &head){
node* temp = new node;
node* curr = head;
while(curr != NULL && curr->id != delID){
temp = curr;
curr = curr->next;
}
if(curr == NULL){
cout << delID << " was not in the has table." << endl;
return false;
}
else{
node* next = curr->next;
cout << "Node with id " << curr->id << " was deleted." << endl;
delete curr;
curr = NULL;
temp->next = next;
return true;
}
}
当要删除的元素是列表的第一个元素时,应将head分配给列表的第二个元素(如果存在(。即:
bool removeFromList(int delID, node* &head){
//Checking for the front of the list
if (head != NULL && head->id == delID){
head = head->next;
return true;
}
node* temp; //You don't need to initialize this
...//the rest of your code may remains equal
}
您需要将head分配给列表中的第二个元素
相关文章:
- 为什么我的删除节点函数实际上没有删除节点?
- 我们可以删除链表中静态内存中的节点吗
- 为什么"delete"关键字不删除节点?
- 为什么我的双向链表删除函数会删除多个节点?
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 删除 XML 文件中的子节点C++
- 创建了一个链表,但如何删除 c++ 中的"所有"节点
- 从unordered_map中删除单个节点
- 删除链表中的特定节点
- 在C++中删除双向链表的头节点后出现访问冲突异常
- 删除链表中的节点 - 分段错误
- 删除链接列表中剩余的最后一个节点
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- 使用函数引用指向节点的指针删除链表中的节点?
- 双向链表 - 无法删除第一个节点
- 双向链表 std::unique_ptr 类在节点删除时无法按预期工作
- BST 节点删除 - 指针未正确删除
- 节点删除功能的链表问题
- 布尔函数始终为真,单向链表中的尾节点删除创建无限循环
- AVL树中节点删除值异常