“颗” -> “棵”

This commit is contained in:
bqlin
2021-12-25 12:24:02 +08:00
parent 96f70a46a4
commit 898330147c
29 changed files with 51 additions and 51 deletions

View File

@ -24,7 +24,7 @@
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210914222335.png)
一直跟着公众号学算法的录友 应该知道,我在[二叉树:构造二叉树登场!](https://mp.weixin.qq.com/s/Dza-fqjTyGrsRw4PWNKdxA),已经讲过,**只有 中序与后序 和 中序和前序 可以确定一唯一的二叉树。 前序和后序是不能确定唯一的二叉树的**。
一直跟着公众号学算法的录友 应该知道,我在[二叉树:构造二叉树登场!](https://mp.weixin.qq.com/s/Dza-fqjTyGrsRw4PWNKdxA),已经讲过,**只有 中序与后序 和 中序和前序 可以确定一唯一的二叉树。 前序和后序是不能确定唯一的二叉树的**。
那么[538.把二叉搜索树转换为累加树](https://mp.weixin.qq.com/s/rlJUFGCnXsIMX0Lg-fRpIw)的示例中,为什么,一个序列(数组或者是字符串)就可以确定二叉树了呢?

View File

@ -34,13 +34,13 @@ int fibonacci(int i) {
在讲解递归时间复杂度的时候,我们提到了递归算法的时间复杂度本质上是要看: **递归的次数 * 每次递归的时间复杂度**
可以看出上面的代码每次递归都是$O(1)$的操作。再来看递归了多少次这里将i为5作为输入的递归过程 抽象成一递归树,如图:
可以看出上面的代码每次递归都是$O(1)$的操作。再来看递归了多少次这里将i为5作为输入的递归过程 抽象成一递归树,如图:
![递归空间复杂度分析](https://img-blog.csdnimg.cn/20210305093200104.png)
从图中可以看出f(5)是由f(4)和f(3)相加而来那么f(4)是由f(3)和f(2)相加而来 以此类推。
在这二叉树中每一个节点都是一次递归,那么这棵树有多少个节点呢?
在这二叉树中每一个节点都是一次递归,那么这棵树有多少个节点呢?
我们之前也有说到一棵深度按根节点深度为1为k的二叉树最多可以有 2^k - 1 个节点。

View File

@ -77,15 +77,15 @@ int function3(int x, int n) {
面试官看到后微微一笑,问:“这份代码的时间复杂度又是多少呢?” 此刻有些同学可能要陷入了沉思了。
我们来分析一下,首先看递归了多少次呢,可以把递归抽象出一满二叉树。刚刚同学写的这个算法,可以用一满二叉树来表示为了方便表示选择n为偶数16如图
我们来分析一下,首先看递归了多少次呢,可以把递归抽象出一满二叉树。刚刚同学写的这个算法,可以用一满二叉树来表示为了方便表示选择n为偶数16如图
![递归算法的时间复杂度](https://img-blog.csdnimg.cn/20201209193909426.png)
当前这二叉树就是求x的n次方n为16的情况n为16的时候进行了多少次乘法运算呢
当前这二叉树就是求x的n次方n为16的情况n为16的时候进行了多少次乘法运算呢
这棵树上每一个节点就代表着一次递归并进行了一次相乘操作,所以进行了多少次递归的话,就是看这棵树上有多少个节点。
熟悉二叉树话应该知道如何求满二叉树节点数量,这满二叉树的节点数量就是`2^3 + 2^2 + 2^1 + 2^0 = 15`,可以发现:**这其实是等比数列的求和公式,这个结论在二叉树相关的面试题里也经常出现**。
熟悉二叉树话应该知道如何求满二叉树节点数量,这满二叉树的节点数量就是`2^3 + 2^2 + 2^1 + 2^0 = 15`,可以发现:**这其实是等比数列的求和公式,这个结论在二叉树相关的面试题里也经常出现**。
这么如果是求x的n次方这个递归树有多少个节点呢如下图所示(m为深度从0开始)