二叉树的深度,平衡二叉树,二叉树的镜像
来源:互联网 发布:物理模拟实验室软件 编辑:程序博客网 时间:2024/06/05 09:54
//二叉树的数据结构
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。//实现,递归遍历二叉树的左子树,右子树,取子树深度大值,再加上子树与根节点的距离1,即为这颗二叉树的深度class
Solution {
public
:
int
TreeDepth(TreeNode* pRoot)
{
if
(pRoot == NULL)
return
0
;
return
max(TreeDepth(pRoot->left),TreeDepth(pRoot->right)) +
1
;
}
};
题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。(平衡二叉树是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树) //实现,利用上面求树深度的函数,求解每层子树的深度,相减判断是否满足平衡二叉树定义,最后递归求解之后层的情况
//二叉树的数据结构
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
//二叉树的数据结构
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
//实现,递归遍历二叉树的左子树,右子树,取子树深度大值,再加上子树与根节点的距离1,即为这颗二叉树的深度
class
Solution {
public
:
int
TreeDepth(TreeNode* pRoot)
{
if
(pRoot == NULL)
return
0
;
return
max(TreeDepth(pRoot->left),TreeDepth(pRoot->right)) +
1
;
}
};
输入一棵二叉树,判断该二叉树是否是平衡二叉树。(平衡二叉树是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树)
class
Solution {
public
:
bool IsBalanced_Solution(TreeNode* pRoot) {
//基本情况
if
(pRoot == NULL)
return
true
;
int
BF = TreeDepth(pRoot->left) - TreeDepth(pRoot->right);
if
(BF < -
1
|| BF >
1
)
return
false
;
if
(IsBalanced_Solution(pRoot->left) && IsBalanced_Solution(pRoot->right))
return
true
;
return
false
;
}
};
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
举例说明:
二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \11 9 7 5
//实现,从上而下,逐层交换
class
Solution {
public
:
void
Mirror(TreeNode *pRoot) {
if
(pRoot == NULL)
return
;
TreeNode *temp = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = temp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}
};
以上编程题目摘自牛客网
阅读全文
0 0
- 二叉树的深度,平衡二叉树,二叉树的镜像
- 二叉树的深度,平衡二叉树深度
- 平衡二叉树/镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- -判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 判断一棵二叉树是否是平衡二叉树/求一颗二叉树的镜像
- 二叉树深度、平衡二叉树的判断
- 【笔试】50、二叉树的深度&&判断平衡二叉树
- 二叉树的深度和平衡二叉树
- 二叉树的深度以及判断平衡二叉树
- 二叉树的深度及平衡二叉树40
- 剑指Offer: 二叉树的深度、平衡二叉树
- 二叉树的深度,判断是否是平衡二叉树
- 剑指Offer 39 二叉树的深度+平衡二叉树
- 二叉树的深度以及判断平衡二叉树
- 二叉树--判断一棵二叉树是否是平衡二叉树&&求一颗二叉树的镜像
- 平衡二叉树的
- 算法设计大作业 8章第3题
- BZOJ 2748 音量调节
- Minimum supported Gradle version is 3.3. Current version is 2.14.1
- rn中访问相册和保存图片
- python 3.5中如何用input输入多个数值?用什么分隔开?
- 二叉树的深度,平衡二叉树,二叉树的镜像
- Tiny4412 Android5.0 定制:编译生成img后如何删除原厂的apk
- 基于Platinum库的DMS实现(android)--Server
- 任务计划cron命令
- 23种设计模式(5)-原型模式
- Oracle报错java.sql.SQLSyntaxErrorException: ORA-01722: invalid number解决方案
- windows下xlwings 的安装
- String内存的分配问题
- 跳出iframe到顶级窗口