尝试递归搜索时,我没有返回正确的数字。我正在使用它来遍历使用单链表实现的队列并返回该项目所在的索引,以便我可以确定需要多少次 dequeue() 才能到达该项目。
public int search(E item) {
return recSearch(item, head);
}
public int recSearch(E item, Node node){
if (head == null){
return -1;
}else if (node.data.equals(item)){
return searchCnt;
}else{
searchCnt++;
return recSearch(item, node.next);
}
}
我觉得它应该正确计数,因为每次它无法满足 if 和 else if 条件时都必须计数,但我不是在正确的地方递增吗?还是我完全离开了?谢谢您的帮助!