1

我有以下方法,但我想使用递归;但是,我收到一个错误:“缺少返回语句”。

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

4 回答 4

3

有几个错误

  • 首先,您没有定义aux(也许是全球性的?)
  • 其次,您需要在何时返回一个值raiz != null
于 2013-04-10T21:42:15.350 回答
2

你是 if 语句有唯一的回报。您需要为 if 语句中未包含的案例添加一个 return 语句。仅从您当前的代码来看,我猜您打算return auxiliar;在方法结束时使用。

于 2013-04-10T21:43:25.797 回答
2

您仅在 case 为 null 时返回一个字符串,但在 case 不为 null 时不返回任何内容。

您需要处理所有情况。返回方法(字符串)必须返回某种值。

于 2013-04-10T21:40:54.130 回答
1

错误的是,只有当 raiz 为 null 时才返回,当你获得参数 raiz 时,它不为 null,方法永远不会结束 - 因为 if 语句之外没有返回

于 2013-04-10T21:41:25.043 回答