二叉树初探
1|0二叉树初探
1|1完美二叉树
-
理论基础
-
完美二叉树,即层数为
,而总结点数为 。 -
对于每个结点
,左节点为 ,右节点为 。 -
显然可以用递归遍历。
-
-
存储方式
-
-
递归遍历
-
-
例题
1|2二叉树深度
有一个 0 0
。
建好这棵二叉树之后,请求出它的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。
1|3输入格式
第一行一个整数
之后
1|4输出格式
一个整数,表示最大结点深度。
1|5样例 #1
样例输入 #1
样例输出 #1
1|6二叉树的遍历
层次遍历
即BFS。
1 2 7 3 6 4 5
深度优先遍历
-
前序遍历
-
先访问根节点,再遍历左子树,最后遍历右子树。
-
-
1 2 3 4 5 6 7
-
-
中序遍历
-
先遍历左子树,再访问根节点,最后遍历右子树。
-
-
4 3 5 2 6 1 7
-
-
后续遍历
-
先遍历左子树,再遍历右子树,最后访问根节点。
-
-
4 5 3 6 2 7 1
-
-
-
思路
- 通过前序遍历找到当前二叉树的根(即前序遍历中第一个位置的值)。
- 然后可以在中序遍历中找出当前二叉树根所在的位置,此时可以得到左子树和右子树的大小,从而递归。
-
例子
- 前序遍历
1 2 3 4 5 6 7
- 中序遍历
4 3 5 2 6 1 7
- 第一次,在前序遍历中找到
,然后在中序遍历中找 的位置,显然4 3 5 2 6
在以 为根的左子树内,而7
在以 为根的右子树内,从而提取左右两个区间进行递归。
- 前序遍历
-
代码
-
-
__EOF__

本文作者:Kdlyh
本文链接:https://www.cnblogs.com/kdlyh/p/17850636.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/kdlyh/p/17850636.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下