我有以下方法,但我想使用递归;但是,我收到一个错误:“缺少退货声明”。
static String buscar(NodoDeArbol raiz, String letra) {
if(raiz == null) {
aux="";
for (int i = 0; i < auxiliar.length()-1; i++) {
aux+=auxiliar.charAt(i);
}
return aux;
}
auxiliar = buscar(raiz.izquierdo, auxiliar+= "0");
auxiliar = buscar(raiz.derecho, auxiliar+= "1");
}
应该怎么做才能解决这个问题?
答案 0 :(得分:3)
有几个错误
aux
(可能是全局?)raiz != null
答案 1 :(得分:2)
当case为null时,您只返回一个字符串,但是当case不为null时,不返回任何内容。
您需要处理所有案件。返回方法(String)必须返回某种值。
答案 2 :(得分:2)
你是if语句唯一的回报。您将需要为if语句中未包含的案例添加return语句。只需根据您当前的代码判断,我猜你的意思是在方法结束时使用return auxiliar;
。
答案 3 :(得分:1)
错误的是,只有当raiz为null时才返回,当你得到参数raiz时,这不是null,方法永远不会结束 - 因为if语句之外没有返回