1.示例二叉树
2.计算二叉树深度:
*先计算左右子树的深度,然后整棵树的深度就是左右子树深度较大值加1
*递归遍历结束条件:定义空树的深度为-1,于是得到叶子节点的深度计算公式
Depth(叶节点)= 1 + max(depth(左子树),depth(右子树))
= 1 + max(-1,-1)
= 1 + -1
=0
计算二叉树深度图解:#后的数字代表遍历的步骤,字母的下标表示节点的深度
实现代码:
template<typename T>
class node
{
public:
T val; //节点值
node<T>* left; //左节点
node<T>* right; //右节点
node():val(T()),left(nullptr),right(nullptr){}
node(T v, node<T>* l=nullptr, node<T>* r=nullptr):val(v),left(l),right(r){}
};
node<char>* createBTree() //构建一棵示例二叉树
{
node<char>* g=new n
2.计算二叉树深度:
*先计算左右子树的深度,然后整棵树的深度就是左右子树深度较大值加1
*递归遍历结束条件:定义空树的深度为-1,于是得到叶子节点的深度计算公式
Depth(叶节点)= 1 + max(depth(左子树),depth(右子树))
= 1 + max(-1,-1)
= 1 + -1
=0
计算二叉树深度图解:#后的数字代表遍历的步骤,字母的下标表示节点的深度
实现代码:
template<typename T>
class node
{
public:
T val; //节点值
node<T>* left; //左节点
node<T>* right; //右节点
node():val(T()),left(nullptr),right(nullptr){}
node(T v, node<T>* l=nullptr, node<T>* r=nullptr):val(v),left(l),right(r){}
};
node<char>* createBTree() //构建一棵示例二叉树
{
node<char>* g=new n