Skip to content

递归(Recursion)

递归就是“函数调用自己”。

关键点

  • 必须有终止条件(base case)。
  • 每次调用都“更接近终止条件”。

经典例子:阶乘

javascript
function fact(n) {
    return n <= 1 ? 1 : n * fact(n - 1);
}

递归与栈

每次递归调用都会压入调用栈。如果层数过多,就会“栈溢出”。

递归 vs. 循环

  • 递归表达结构清晰。
  • 循环通常更高效、更安全。

进一步阅读

理解递归能帮助你理解树、图、分治等算法。

CC-BY 4.0 Licensed