美文网首页
我对递归的三重理解

我对递归的三重理解

作者: 小石头在长大 | 来源:发表于2019-06-15 12:59 被阅读0次

    第一重:二叉树的先序遍历

    递归代码:

    第二重:从二叉树的角度理解递归算法

    举例:Generate Parentheses 生成括号

    转换成二叉树的角度:

    以下是输入整数2时,括号存储情况,进栈出栈顺序很清晰,一个节点代表调用一次递归函数,一共调用10次。值得一提的是,递归里面嵌套两个递归时,是二叉树,如果是三个递归,就是三叉树,以此类推。

    第三重:从树的角度理解for循环嵌套递归

    转换成树的角度:以下是 recur(0,2)的情况,一个节点代表一次递归,节点值为i,一共调用递归函数8次

    二叉的含义是,左叉代表调用递归,右叉代表出栈后for循环+1调用递归,n+1为第一层分支个数,第二层开始都是二叉。

    感觉,从树的角度出发理解递归,再多套几层循环或者递归也不怕了(猜的)

    参考:

    https://www.cnblogs.com/llguanli/p/7363657.html

    https://blog.csdn.net/qq_33243189/article/details/80222629

    https://blog.csdn.net/mikayong/article/details/51706508

    相关文章

      网友评论

          本文标题:我对递归的三重理解

          本文链接:https://www.haomeiwen.com/subject/adcbfctx.html