我试图在链表中找到给定对象的索引。 我想返回-1是我的列表中不存在的对象。 以下是我的代码,请指导我。
int List::indexOf(const Object& o) const
{
Node* tempNode = first;
int count = 0;
while(tempNode != NULL)
{
if (o.compare(tempNode->o) == 0)
{
break;
}
++count;
tempNode = tempNode->next;
}
return count;
}
答案 0 :(得分:1)
为什么不从循环内部返回?
Node* tempNode = first;
int count = 0;
while(tempNode != NULL)
{
if (o.compare(tempNode->o) == 0)
{
//return the count when you found a match
return count;
}
++count;
tempNode = tempNode->next;
}
//return -1 if no match is found
return -1;
}
您还可以存储一个辅助工具,告诉您是否找到了该节点,但这种方法更清晰IMO。