判断一个二叉树是否是平衡二叉树(AVL)
来源:互联网 发布:阿里云服务器防攻击 编辑:程序博客网 时间:2024/06/07 20:07
要求:输入一个二叉树的根节点,判断该树是不是平衡二叉树
平衡二叉树:任意一节点左右子树的高度之差的绝对值小于2
bool isAVL(BinaryTreeNode *pRoot, int &height){ if (pRoot == NULL) { height = 0; return true; } // 判断左子树是否是平衡树 int heightLeft; bool resultLeft = isAVL(pRoot->lchild, heightLeft); // 判断右子树是否是平衡树 int heightRight; bool resultRight = isAVL(pRoot->rchild, heightRight); // 左右子树都为AVL,判断根节点的平衡性 if (resultLeft && resultRight &&abs(heightLeft - heightRight) < 2) { height = (heightLeft > heightRight) ? (heightLeft + 1) : (heightRight + 1); return true; } return false;}
PS:二叉树的深度
int TreeDepth(BinaryTreeNode *pRoot){ if (pRoot == NULL) { return 0; } int nLeft = TreeDepth(pRoot->lchild); int nRight = TreeDepth(pRoot->rchild); return (nLeft > nRight) ? (nLeft + 1) : (nRight + 1);}
0 0
- 判断一个二叉树是否是平衡二叉树(AVL)
- 判断一个二叉树是否是平衡二叉树
- 判断一个二叉树是否是平衡二叉树
- 判断一个二叉树是否是平衡二叉树
- 数据结构之如何判断一棵二叉树是否是平衡二叉树(AVL树)
- 如何判断一棵二叉树是否是平衡二叉树(AVL)
- 判断一个二叉树是否是AVL树
- leetcode的判断一个二叉树是否是平衡树
- 如何判断一个二叉树是否是平衡的?
- 判断二叉树是否是平衡树
- 判断二叉树是否是平衡树
- 判断二叉树是否是平衡树
- 判断一颗树是否是平衡二叉树
- 判断是否是平衡二叉树
- 判断一棵树是否是平衡二叉树
- 判断是否是平衡二叉树
- 判断二叉数是否是平衡树
- 判断是否是平衡二叉树
- HM16-2 参考模型 函数调用
- xcode创建一个工程的多个target,便于测试和发布多个版本
- tcp ip 各个errno出现场景
- Thinkpad U盘装系统
- 百度地图 SDK IOS v2.7.0 引擎初始化失败
- 判断一个二叉树是否是平衡二叉树(AVL)
- xhtml
- C语言函数sscanf()的用法
- 解决jsp中文乱码问题
- 【C++自我精讲】基础系列六 PIMPL模式
- Hibernate的基本映射
- python higher-order function demo
- Android中dip,dp,px,pt,sp的区别
- android:versionCode和android:versionName 用途