再帰的に検索しようとすると、正しい番号が返されません。これを使用して、単一リンクリストで実装されたキューをトラバースし、アイテムが存在するインデックスを返すので、そのアイテムに到達するために 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 条件を満たさないたびにカウントする必要があるため、正しくカウントする必要があるように感じますが、適切な場所でインクリメントしていませんか? それとも、私は完全に離れていますか?助けてくれてありがとう!