C++ 尝试删除链接列表中所有有价值的节点时出现问题
我无法删除链表中包含相同整数的所有节点。在使用测试节点[1,2,1,3,1,5,1,2]并删除所有2以退出[1,1,3,1,5,1,1]时,我在下面注释的行上遇到EXC\u BAD\u访问错误。这是我的密码: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
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;
}
谢谢大家! 在观察变量值的同时,您是否尝试使用调试器单步执行代码?您的操作过于复杂了。有益阅读: