我分配了一个函数来搜索列表中数据的最后一个实例(在这种情况下为整数)。该函数在使用if语句的行中因访问冲突而中断。
Node* List::SearchLast (int val)
{
Node* pLast=NULL;
Node* pNode=pHead;
while (pHead!=NULL)
{
if (pNode->data==val)
pLast=pNode;
pNode=pNode->next;
}
return pLast;
}
我尝试观察pNode发生了什么。Here它应该变为零,但是then只是传递了while语句。我究竟做错了什么?
最佳答案
您的while
是无限循环,请更改为:
Node* List::SearchLast(int val)
{
Node *pLast = NULL;
Node *pNode = pHead;
while (pNode != 0) {
if (pNode->data == val) pLast = pNode;
pNode = pNode->next;
}
return pLast;
}