C++之平衡二叉树的判定(25)---《那些奇怪的算法》
来源:互联网 发布:js设置编码为utf8 编辑:程序博客网 时间:2024/06/14 12:14
我们知道,平衡二叉树要求二叉树的左右子树的深度差不超过1,即可以取值为{-1,0,1},同时,空树也为平衡二叉树,知道了这些,我们可以方便的进行平衡二叉树的判定,实现代码如下:
即定义一个求树的深度的一个函数,我们使用递归进行定义,然后我们定义判定树是否为平衡二叉树的函数,同样使用递归定义,因为平衡二叉树的左右子树一定为平衡二叉树!
class Solution {public: bool isBalanced(TreeNode *root) { if(!root) return true; else return (abs(depth(root->left)-depth(root->right))<2)&&isBalanced(root->left)&&isBalanced(root->right); } int depth(TreeNode* root){ if(!root) return 0; if(!root->left&&!root->right) return 1; int left=depth(root->left)+1; int right=depth(root->right)+1; return max(left,right); }};
阅读全文
0 0
- C++之平衡二叉树的判定(25)---《那些奇怪的算法》
- C++之根据组合遍历顺序生成二叉树(25)---《那些奇怪的算法》
- 平衡二叉树的判定
- C++之二叉排序树(二叉搜索树)的实现(4)---《那些奇怪的算法》
- 平衡二叉树的判定(1077)
- LintCode93:平衡二叉树的判定
- C++之统计二叉树中路径和为定值的所有路径(24)---《那些奇怪的算法》
- C++实现二叉树的镜像操作(18)---《那些奇怪的算法》
- C++之排序算法(2)---《那些奇怪的算法》
- 求二叉树的深度,判定二叉树是否是平衡二叉树(java)
- (二叉树)求树的最小深度,平衡树的判定,判定树是否相同,判定对称树
- C++之实现大顶堆(1)---《那些奇怪的算法》
- C++之快速排序(3)---《那些奇怪的算法》
- C++之堆排序(6)---《那些奇怪的算法》
- C++之归并排序(7)---《那些奇怪的算法》
- 平衡二叉树判定
- 平衡二叉树判定
- 12.剑指offer-平衡二叉树的判定
- PCB设计3:Altium designer原理图编译
- 提取当前页面url带参数的value值
- ConcurrentHashMap源码理解(1.7)
- laravel定时任务(使用linux Cron)(转载)
- The origin server did not find a current representation for the target resource or is not willing to
- C++之平衡二叉树的判定(25)---《那些奇怪的算法》
- 排除依赖包,Maven
- java 本地版本切换
- hdu6096 String【AC自动机】
- 数据通信:RIP配置宣告网络号时不带子网掩码?
- java内部类详解
- Linux 中 split 大文件分割和 cat 合并文件
- Linux 常用命令大全
- 阿木实验室 PX4初级视频教程免费版下载地址汇总