递归(Recursion) 递归就是“函数调用自己”。 关键点 必须有终止条件(base case)。 每次调用都“更接近终止条件”。 经典例子:阶乘 function fact(n) { return n <= 1 ? 1 : n * fact(n - 1); } 递归与栈 每次递归调用都会压入调用栈。如果层数过多,就会“栈溢出”。 递归 vs. 循环 递归表达结构清晰。 循环通常更高效、更安全。 进一步阅读 理解递归能帮助你理解树、图、分治等算法。