许多语言(例如 python)都有一个设置的最大递归深度。我意识到你可以改变那个深度,或者干脆不写递归函数,但是如果你写了一个递归函数并且你达到了最大的递归深度,你将如何准备和处理?
最佳答案
在函数签名中有一个参数,每次调用都会递增。当它接近最大递归深度时,做一些事情 之前 它达到了。
这是一个ruby-ish伪代码示例:
def my_recursive_function(current_depth)
# do stuff
if current_depth >= MAX_RECURSION_LIMIT
# throw exception, or output helpful information or return default value
else
my_recursive_function(current_depth+1)
end
end
关于language-agnostic - 如何处理最大递归深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933413/