递归问题对于初学者往往比较难,本文介绍的递归分析方法可以直观地看清递归的流程不再会被递归函数搞晕
分析递归,先要了解递归函数对应的结构,如二叉树的遍历递归函数为树状结构,再明白进出递归的对应操作和递归退出条件等,具体可参考下图
对于一个函数里多次调用递归的结构一般为树状结构,而且执行顺序都是树的外包络线(包括简单的函数只调了一次的情况),经过某条节点间的连线代表执行某段代码(顺着走和逆着走的代码一般不一样,例如二叉树遍历函数,分别对应前中后序的代码)
递归问题对于初学者往往比较难,本文介绍的递归分析方法可以直观地看清递归的流程不再会被递归函数搞晕
分析递归,先要了解递归函数对应的结构,如二叉树的遍历递归函数为树状结构,再明白进出递归的对应操作和递归退出条件等,具体可参考下图
对于一个函数里多次调用递归的结构一般为树状结构,而且执行顺序都是树的外包络线(包括简单的函数只调了一次的情况),经过某条节点间的连线代表执行某段代码(顺着走和逆着走的代码一般不一样,例如二叉树遍历函数,分别对应前中后序的代码)