我有一个已排序的链表,我试图创建一个函数来删除用户传递给nameToSearch的任何内容.但我一直在犯错.以下是我到目前为止的情况
void deleteProduct(NodePtr head, char* nameToSearch)
{
NodePtr nodeUnderEdit = findNodeByName(head, nameToSearch);
if (nodeUnderEdit == NULL)
{
cout<<"\n ERROR: Product not found \n";
}
else
{
delete nodeUnderEdit;
nodeUnderEdit = nodeUnderEdit->next;
}
}
Run Code Online (Sandbox Code Playgroud)
delete nodeUnderEdit;
nodeUnderEdit = nodeUnderEdit->next;
Run Code Online (Sandbox Code Playgroud)
如果nodeUnderEdit先删除,nodeUnderEdit->next则会丢失.您需要首先确保nodeUnderEdit下一个节点之前连接的节点nodeUnderEdit->next,然后您可以执行删除操作.