题目描述

本题要求判断给定的二叉树是否是平衡二叉树
平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。
一颗树的高度指的是树的根节点到所有节点的距离中的最大值。

/*** struct TreeNode {*  int val;*   struct TreeNode *left;* struct TreeNode *right;* };*/class Solution {public:/*** * @param root TreeNode类 * @return bool布尔型*/bool isBalanced(TreeNode* root) {// write code here// 空树平衡if(!root){return true;}// 非空树,判断根节点是否平衡// 若不平衡if(abs(maxDepth(root->left) - maxDepth(root->right)) > 1){return false;}// 若根节点平衡,进行递归,判断子节点是否平衡return isBalanced(root->left)&&isBalanced(root->right);}// 递归计算最大深度int maxDepth(TreeNode* root){if(!root){return 0;}return max(maxDepth(root->left), maxDepth(root->right)) + 1;}
};

原因分析

  • 第一次错,部分答案没有通过,是因为在判断平衡时,return 两个递归没有使用and连接。

判断二叉树是否为平衡二叉树(递归)相关推荐

  1. 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)

    本题来自左神<程序员代码面试指南>"判断二叉树是否为平衡二叉树"题目. 题目 平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1. ...

  2. 判断二叉树是否是平衡二叉树

    平衡二叉树(Balanced Binary Tree)又被称为AVL树:且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树. 主要实现思路: ...

  3. python判断二叉树是否为平衡二叉树

    python判断二叉树是否为平衡二叉树 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点.一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列.在学习与总结的同时更加 ...

  4. 判断二叉树是否为平衡二叉树

    题目:判断二叉树是否为平衡二叉树 思路:迭代,需要借助二叉树的高度,判断一个树是否为平衡二叉树,则判断其左子树和右子树是否为平衡二叉树 public static boolean isAVLRec(T ...

  5. java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树

    平衡二叉树的条件:为空或者子树高度之差的绝对值小于等于1,且子树也是平衡二叉树 最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进 ...

  6. 常考数据结构与算法:判断二叉树是否对称(迭代法,递归法)

    给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的      1     /  \   2    2  / \    / \ 3 4  4  3 下面这棵二叉树不对称 ...

  7. 判断二叉树是否是平衡二叉树(dp tree)

    二叉树节点个数为N, 时间复杂度为O(N) def process(head):#['是否平衡','树的高度']if head == None:return [True,0]left = proces ...

  8. 剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)

    1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 23 3 1 4 4 1 如下二叉树,就是非对称的二叉树 23 3 1 4 4 2 2 代码实现 #include & ...

  9. 判断二叉树是否平衡二叉树

    题目 平衡二叉树的性质为:要么是一颗空树,要么任何一个节点的左右子树高度差的绝对值不超过1.给定一棵二叉树的头结点head,判断这棵二叉树是否为平衡二叉树. 难度:? 基础理解 以下是个人认为对概念叙 ...

最新文章

  1. 2016/05/03(接口 买票 临界资源同步锁)
  2. js检测、控制表单输入必须为中文
  3. golang map 存储函数
  4. Android自定义app图标,自定义app图标(Icon) - Cordova中文网
  5. 设计模式:备忘录模式(Memento)
  6. python enumerate_Python中enumerate用法详解
  7. 把人工智能、机器学习、深度学习串一串,串一个同心圆
  8. 数据库系列学习(三)-数据的增、删、改
  9. Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat
  10. 高性能跳频抗干扰宽带自组网电台
  11. html css前端框架,GitHub - zyj1022/wee: WEE—简单快速的响应式HTML/CSS前端框架
  12. 史上最全的Java面试题集锦在这里,带你碾压面试官!
  13. 《使用Python进行自然语言处理》学习笔记六
  14. 人工智能(A.I.)的几个常见基础定义及发展概述
  15. 为什么我从PR里面导出来的视频,在电脑上播放是正常的,微信发给朋友后,形状就变了,扭曲了一样的
  16. 瑞士轮 pascal
  17. 3、AspnetCore 在接口调用时不成功
  18. ctfshow萌新计划web22
  19. 毕业设计-互联网 + 背景下基于微信小程序的农产品分销系统
  20. 云计算机教室 安装学生机程序,云教室部署的五大步骤

热门文章

  1. 利用js写一个函数,实现翻转任意数组。 写一个函数,实现对数字数组的排序。
  2. 数据科学太难?这些陷阱请避开,正能量很重要!
  3. 巧用win7搜索功能
  4. eclipse使用性能剖析工具TPTP的较好方案
  5. iOS开发---本地通知(UILocalNotification)
  6. 知道了蚂蚁森林这个“秘密”,我坐不住了!!
  7. CSDN博客去除上传的图片水印
  8. 【转】SLAM 论文阅读和分类整理
  9. eclipse修改java jdk(以1.8为例)
  10. SVN强制编写注释才能提交,提交中不允许删除文件操作。