判断二叉树是否为平衡二叉树
2015-10-10 14:51
281 查看
本文来源于:http://blog.chinaunix.net/uid-20330058-id-1965441.html
如何判断一棵二叉树是否是平衡二叉树
问题:判断一个二叉排序树是否是平衡二叉树解决方案:
根据平衡二叉树的定义,如果任意节点的左右子树的深度相差不超过1,那这棵树就是平衡二叉树。
首先编写一个计算二叉树深度的函数,利用递归实现。
template static int Depth(BSTreeNode* pbs) { if (pbs==NULL) return 0; else { int ld = Depth(pbs->left); int rd = Depth(pbs->right); return 1 + (ld >rd ? ld : rd); } }
下面是利用递归判断左右子树的深度是否相差1来判断是否是平衡二叉树的函数:
template static bool isBalance(BSTreeNode* pbs) { if (pbs==NULL) return true; int dis = Depth(pbs->left) - Depth(pbs->right); if (dis>1 || dis<-1 ) return false; else return isBalance(pbs->left) && isBalance(pbs->right); }
相关文章推荐
- android studio 插件安装
- css设置最小高度 然后自适应
- 重载new和delete检测内存泄漏
- 2010 SDOI 大陆争霸
- mysql 中文乱码
- Fragment的使用随笔
- 测试资料
- UG NX 二次开发 插入UDF
- 移动互联网终端的touch事件,touchstart, touchend, touchmove
- 设计模式概览续(结构型模式)
- 50个必备的实用jQuery代码段
- Java 基础—— super关键字学习以及super与this的比较
- 枚举
- JS日期格式化
- linux/centos安装nginx常见错误及解决办法【make错误,需要yum -y install openssl openssl-devel或者自己下载然后重新./configure】
- 获取版本信息
- I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard-android.sh hacking
- OneThink管理平台 ,登录后台一直提示验证码错误
- Android SimpleAdapter的参数
- 安卓的相关网站