这个方法在java中出了什么问题?我想要实现递归

时间:2013-04-10 21:39:10

标签: java

我有以下方法,但我想使用递归;但是,我收到一个错误:“缺少退货声明”。

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");
}

应该怎么做才能解决这个问题?

4 个答案:

答案 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语句之外没有返回