数的概念
数据的线性存储结构有哪种,结构有几种
什么是树
什么不是树
什么是结点的度
什么是树的度
什么是叶子结点或终端结点
什么是双亲结点或父结点
什么是孩子结点或子结点
什么是根结点
什么是结点的层度
什么是树的高度或深度
什么是非终端结点或分支结点
什么是兄弟结点
什么是堂兄弟结点
什么是结点的祖先
什么是子孙
什么是森林
数的表示形式
数的孩子表示法是怎么表示的
class Node {
int value;
Node ledtChild;
Node rightChild;
}
二叉树
二叉树的概念
二叉树是什么
二叉树至少有几个域
二叉树是有序树吗
满二叉树是什么
完全二叉树是什么
二叉树的性质
若规定根结点的层数为1,则一棵非空二叉树的第i层上最多有多少(i>0)个结点
若规定只有根结点的二叉树的深度为1,则深度为K的二叉树的最⼤结点数是多少(k>=0);的推导过程
具有 n 个结点的完全二叉树的深度 k 是什么n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为i的结点有:
◦ 若i>0,双亲序号:(i-1)/2;i=0,i为根结点编号,无双亲结点
◦ 若 2i+1< n, 左孩子序号:2n+1,否则无左孩子
◦若 2i+2< n, 右孩子序号:2n+2 ,否则无右孩子
二叉树的存储
二叉树是怎么存储的
二叉树的基本操作
二叉树的遍历
前中后序遍历是什么
前中后序遍历的实现
层序遍历是什么
获取树中节点的个数的代码实现
获取叶子节点的个数的代码实现
子问题思路-求叶子结点个数的代码实现
获取第K层节点的个数的代码实现
获取二叉树的高度的代码实现
检查两棵树是否相同。100. 相同的树 - 力扣(LeetCode)
另一棵树的子树。572. 另一棵树的子树 - 力扣(LeetCode)
翻转二叉树。226. 翻转二叉树 - 力扣(LeetCode)
判断一棵二叉树是否是平衡二叉树。110. 平衡二叉树 - 力扣(LeetCode)
对称二叉树。101. 对称二叉树 - 力扣(LeetCode)
二叉树的构建及遍历。二叉树遍历_牛客题霸_牛客网
二叉树的分层遍历。102. 二叉树的层序遍历 - 力扣(LeetCode)
给定一个二叉树,找到该树中两个指定节点的最近公共祖先。236. 二叉树的最近公共祖先 - 力扣(LeetCode)
根据一棵树的前序遍历与中序遍历构造二叉树。105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)
根据一棵树的中序遍历与后序遍历构造二叉树。106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)
二叉树创建字符串。606. 根据二叉树创建字符串 - 力扣(LeetCode)
二叉树前序非递归遍历实现。144. 二叉树的前序遍历 - 力扣(LeetCode)
二叉树中序非递归遍历实现。94. 二叉树的中序遍历 - 力扣(LeetCode)
二叉树后序非递归遍历实现。145. 二叉树的后序遍历 - 力扣(LeetCode)
难题
1.
因为后序遍历的顺序是左右根
,所以后序遍历的最后一个元素即为根节点,那么我们在中序遍历中找到这个节点,这个元素左边的即为左子树的中序遍历,右边的即为右子树的中序遍历。接下来根据这个方法,对每个部分采取同样的方法递归构造。