从单个排序的链表C++中删除一个元素

use*_*464 0 c++

我有一个已排序的链表,我试图创建一个函数来删除用户传递给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)

tao*_*ocp 6

  delete nodeUnderEdit;
  nodeUnderEdit = nodeUnderEdit->next;
Run Code Online (Sandbox Code Playgroud)

如果nodeUnderEdit先删除,nodeUnderEdit->next则会丢失.您需要首先确保nodeUnderEdit下一个节点之前连接的节点nodeUnderEdit->next,然后您可以执行删除操作.