面试题答案
一键面试递归终止条件的重要性
- 防止无限循环:在递归函数中,如果没有递归终止条件,函数会不断调用自身,导致栈溢出错误(stack overflow)。这是因为每次函数调用都会在栈中分配空间,无限制的调用最终会耗尽栈空间。
- 确定最终结果:递归终止条件为递归调用提供了一个明确的结束点,使得函数能够在达到这个条件时返回一个确定的值,进而通过层层回溯计算出最终结果。
计算阶乘的递归函数示例
def factorial(n):
# 递归终止条件
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
在上述计算阶乘的递归函数 factorial
中,if n == 0 or n == 1:
就是递归终止条件。当 n
等于 0
或者 1
时,函数直接返回 1
,不再进行递归调用。