我尝试编写删除双链表中节点的函数。 但我的第一个条件,其中nodeToDelete也是头。 当我使用该代码免费(nodeToDelete)不免费nodeToDeleteBut nodeToDelete-> nextNode;无法在C++中的双链表中释放节点
有帮助吗?
编辑:用delete也不要工作,见截图 - >https://s22.postimg.org/dff43kn9d/slide.jpg
编辑
void deleteNode(node *&head, int value)
修复我的代码谢谢。
void deleteNode(node *head, int value)
{
node* nodeToDelete = head;
while(nodeToDelete != NULL)
{
if(nodeToDelete->value == value)
{
if(nodeToDelete == head)
{
head = nodeToDelete->nextNode;
head->previousNode = NULL;
delete nodeToDelete;
return;
}
}
nodeToDelete = nodeToDelete->nextNode;
}
}
你真的应该使用'new'和'delete'在C++中,如果你有做手工的内存分配。 'malloc'和'free'不适用于C++中的非标准布局类类型。 – NathanOliver
请学习如何使用调试器,以及如何逐行执行代码。 –
哦!谢谢 !!!我使用新的内存分配。应该使用免费的删除。 – pZCZ