我有一个在我的代码上出现堆栈溢出错误的问题。我试图在一个数组中找到一个数字,但是我必须在一个递归函数中这样做,并给出该错误。
public static int linear(int[] array, int num, int indice) {
if (indice < array.length-1) {
if (array[indice] == num) {
return indice;
} else {
ocurrencias++;
linear(array, num, indice + 1);
}
}
return -1;
}
如果您能帮助我,我将不胜感激。对不起,我的英语有点生锈。
最佳答案
在递归调用linear之前,您错过了回报,是吗?
return linear(array, num, indice + 1);
但是,我不认为Java会进行尾递归优化
(What is tail recursion?),
因此,您必须为大型数组适当增加堆栈大小;)