int SDI::LinkedList::removeValue(int removeValue)
{
SDI::Node* current = head;
SDI::Node* prev = head;
while (current != nullptr)
{
if (current == head)
{
if (current->value == removeValue)
{
current = current->next; // track the next value
delete head;
head = current-> next;
return 1;
}
}
else
{
if (current->value != removeValue)
{
prev = current; /// don’t lose track of the previous value, saves working 1 ahead
current = current-> next; // let the loop deal with it
}
else
{
prev->next = current->next;
delete current;
}
if (current->next != nullptr)
{
if (current->next->value == removeValue)
{
SDI::Node* temp = current->next;
current->next = current->next->next;
delete temp;
return 1;
}
}
}
}
return 0;
}
一切似乎很好地工作,直到它到达线路:从自定义链接列表中删除值
"if (current->value != removeValue)"
这似乎只是直接跳过去,但电流 - >值不等于如观察者中所示的removeValue。
错误是什么? – Matt
您是否在发布模式下编译? –