平衡二叉树
2016-03-29 00:06
253 查看
平衡二叉树定义:
一棵二叉树树或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
很容易用代码实现一棵平衡二叉树的判断:
class Solution {
public:
//判断函数
bool IsBalanced(TreeNode* pRoot) {
if (pRoot == NULL)
return true;
int deep_left = deep(pRoot->left);
int deep_right = deep(pRoot->right);
if (abs(deep_left - deep_right) > 1)
return false;
else
return IsBalanced(pRoot->left) && IsBalanced(pRoot->right);
}
int deep(TreeNode* p)//求深度函数
{
if(p == NULL)
return 0;
return 1 + (deep(p->left) > deep(p->right) ? deep(p->left) : deep(p->right));
}
};
一棵二叉树树或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。
很容易用代码实现一棵平衡二叉树的判断:
class Solution {
public:
//判断函数
bool IsBalanced(TreeNode* pRoot) {
if (pRoot == NULL)
return true;
int deep_left = deep(pRoot->left);
int deep_right = deep(pRoot->right);
if (abs(deep_left - deep_right) > 1)
return false;
else
return IsBalanced(pRoot->left) && IsBalanced(pRoot->right);
}
int deep(TreeNode* p)//求深度函数
{
if(p == NULL)
return 0;
return 1 + (deep(p->left) > deep(p->right) ? deep(p->left) : deep(p->right));
}
};
相关文章推荐
- Android Bitmap占用内存计算公式
- 页面刷新两次为什么取不到值
- Windows各版本官方原版系统下载
- dip,px,sp区别及使用场景
- 第五周上机实践项目——项目2-游戏中的角色类(1)
- Spring Boot实现异步请求(Servlet 3.0)
- 占腾讯课堂60%份额的潭州学院被终止合作
- ASP.NET MVC4 HtmlHelper扩展类,实现分页功能
- Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
- PHP实现163邮箱自动发送邮件
- php $_SESSION会员登录实例分享
- php ajax实现文件上传进度条
- 详解PHP匿名函数与注意事项
- 详解PHP的Yii框架中的Controller控制器
- php ajax异步读取rss文档数据
- PHP的Yii框架中Model模型的学习教程
- PHP的Yii框架中创建视图和渲染视图的方法详解
- PHP的Yii框架中View视图的使用进阶
- PHP实现可自定义样式的分页类
- 深入解析PHP的Yii框架中的缓存功能