第一重:二叉树的先序遍历
递归代码:
第二重:从二叉树的角度理解递归算法
举例:Generate Parentheses 生成括号
转换成二叉树的角度:
以下是输入整数2时,括号存储情况,进栈出栈顺序很清晰,一个节点代表调用一次递归函数,一共调用10次。值得一提的是,递归里面嵌套两个递归时,是二叉树,如果是三个递归,就是三叉树,以此类推。
第三重:从树的角度理解for循环嵌套递归
转换成树的角度:以下是 recur(0,2)的情况,一个节点代表一次递归,节点值为i,一共调用递归函数8次
二叉的含义是,左叉代表调用递归,右叉代表出栈后for循环+1调用递归,n+1为第一层分支个数,第二层开始都是二叉。
感觉,从树的角度出发理解递归,再多套几层循环或者递归也不怕了(猜的)
参考:
https://www.cnblogs.com/llguanli/p/7363657.html
网友评论