我试图通过以下方法进行搜索,但是当我尝试按字符串列表和字符串进行搜索时,它会通过print out返回true但返回false返回false。
public Boolean Search(List<E> list, E e){
if(list.size() == 1){
//here
System.out.println(list.get(0).compareTo(e)==0);
return (list.get(0).compareTo(e) == 0);
}
if(list.get(list.size()/2).compareTo(e) == 0){
return true;
}
else{
if(list.get(list.size()/2).compareTo(e) >0){
Search(list.subList(list.size()/2-1,list.size()-1),e);
}
else{
Search(list.subList(0,list.size()/2),e);
}
}
return false;
}
答案 0 :(得分:0)
在方法的后半部分,您只需递归调用Search
,但会丢弃结果。这是你的错误。而是返回递归调用的结果。