递归函数的应用很广泛,特别是在解决树形数据结构的问题时。但是递归函数的编写和阅读也是比较烧脑的。 有一个技巧可以帮助编写和阅读递归函数: 把递归函数当做一个空语句,
递归函数的应用很广泛,特别是在解决树形数据结构的问题时。但是递归函数的编写和阅读也是比较烧脑的。
有一个技巧可以帮助编写和阅读递归函数:
把递归函数当做一个空语句,前面的代码会被集中地依次执行,后面的代码也会被集中地依次执行
例子:
def func(n):if n==0:
return
print("before"+str(n))
func(n-1)
print("after"+str(n))
func(10)
输出:
before10before9
before8
before7
before6
before5
before4
before3
before2
before1
after1
after2
after3
after4
after5
after6
after7
after8
after9
after10
在before1 和 after1 的中间,递归动作结束,从输出来看,也是入栈出栈格式。