C++ 尝试删除链接列表中所有有价值的节点时出现问题

C++ 尝试删除链接列表中所有有价值的节点时出现问题,c++,xcode,pointers,linked-list,C++,Xcode,Pointers,Linked List,我无法删除链表中包含相同整数的所有节点。在使用测试节点[1,2,1,3,1,5,1,2]并删除所有2以退出[1,1,3,1,5,1,1]时,我在下面注释的行上遇到EXC\u BAD\u访问错误。这是我的密码: int List::RemoveAll(int v) { if (IsEmpty()) return 0; else if (HasOnlyOne()) { if (h->data == v) { delete

我无法删除链表中包含相同整数的所有节点。在使用测试节点[1,2,1,3,1,5,1,2]并删除所有2以退出[1,1,3,1,5,1,1]时,我在下面注释的行上遇到EXC\u BAD\u访问错误。这是我的密码:

int List::RemoveAll(int v) {
    if (IsEmpty())
        return 0;
    else if (HasOnlyOne()) {
        if (h->data == v) {
            delete h;
            h = t = NULL;
            return 1;
        }
    }

    int numRemoved = 0;
    Node *curNode = h->next, *prevNode = h;
    while (curNode != NULL) {
        if (prevNode->data == v) {
            delete prevNode;
            numRemoved++;
        }
        prevNode = curNode;
        curNode = curNode->next; // EXC_BAD_ACCESS error here.
    }

    return numRemoved;
}

谢谢大家!

在观察变量值的同时,您是否尝试使用调试器单步执行代码?您的操作过于复杂了。有益阅读: