递归函数是函数自身调用自身,关键是有明确终止条件且每次递归逼近该条件,否则栈溢出;基础结构含 base case 和递归调用,如阶乘实现。

递归函数就是函数自己调用自己。写对的关键是:有明确的终止条件,每次递归都要向这个条件靠近,否则会无限调用导致栈溢出。
基础写法:必须有 base case 和递归调用
比如计算阶乘 n!:
function factorial(n) {
if (n return n * factorial(n - 1); // 向 base case 靠近
}
没写 if (n 就直接调用自身,运行时立刻报错 RangeError: Maximum call stack size exceeded。
立即学习“Java免费学习笔记(深入)”;
标签: javascript java 栈 递归函数
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~