如何解决调用堆栈如何处理带或不带返回类型的递归?
我注意到有些递归有返回类型,但有些只是将 void 作为返回类型。我不知道什么时候使用哪个。我还查看了调用堆栈,我猜想带有“void”类型的递归只是返回记录在堆栈上的值。不知道我的理解对不对。 我无法将返回类型为 void 的递归转换为返回类型的递归。例如,我不知道如何实现返回类型为 void 的斐波那契函数。
private int fibonacci(int number) {
if (number < 1) {
return number;
}
return fibonacci(number-1)+fibonacci(number-2);
}
另外,在rec函数中,我调查了调用栈;但我不知道程序如何知道何时在堆栈上弹出记录。在 rec 函数的基本情况下,该程序在没有“return;”的情况下运行良好;但我注意到它也适用于“return;”。我真的说不清为什么会这样。有人可以解释一下堆栈如何与递归一起工作吗?
private static void rec(int l,int r,List<String> list,String s){
if(r==0){
list.add(s);
// return;
}
if(l>0){
rec(l-1,r,list,s+"(");
}
if(r>l){
rec(l,r-1,s+")");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。