判断二叉树是否为平衡二叉树(递归)
题目描述
本题要求判断给定的二叉树是否是平衡二叉树
平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 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连接。
判断二叉树是否为平衡二叉树(递归)相关推荐
- 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
本题来自左神<程序员代码面试指南>"判断二叉树是否为平衡二叉树"题目. 题目 平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1. ...
- 判断二叉树是否是平衡二叉树
平衡二叉树(Balanced Binary Tree)又被称为AVL树:且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树. 主要实现思路: ...
- python判断二叉树是否为平衡二叉树
python判断二叉树是否为平衡二叉树 树是数据结构中的重中之重,尤其以各类二叉树为学习的难点.一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列.在学习与总结的同时更加 ...
- 判断二叉树是否为平衡二叉树
题目:判断二叉树是否为平衡二叉树 思路:迭代,需要借助二叉树的高度,判断一个树是否为平衡二叉树,则判断其左子树和右子树是否为平衡二叉树 public static boolean isAVLRec(T ...
- java 判断二叉树是否平衡_剑指Offer - 判断二叉树是否是平衡二叉树
平衡二叉树的条件:为空或者子树高度之差的绝对值小于等于1,且子树也是平衡二叉树 最直接的做法,遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进 ...
- 常考数据结构与算法:判断二叉树是否对称(迭代法,递归法)
给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 下面这棵二叉树不对称 ...
- 判断二叉树是否是平衡二叉树(dp tree)
二叉树节点个数为N, 时间复杂度为O(N) def process(head):#['是否平衡','树的高度']if head == None:return [True,0]left = proces ...
- 剑指offer之中判断二叉树是不是对称二叉树(递归和非递归实现)
1 问题 判断二叉树是不是对称(递归和非递归实现) 如下二叉树,就是对称的二叉树 23 3 1 4 4 1 如下二叉树,就是非对称的二叉树 23 3 1 4 4 2 2 代码实现 #include & ...
- 判断二叉树是否平衡二叉树
题目 平衡二叉树的性质为:要么是一颗空树,要么任何一个节点的左右子树高度差的绝对值不超过1.给定一棵二叉树的头结点head,判断这棵二叉树是否为平衡二叉树. 难度:? 基础理解 以下是个人认为对概念叙 ...
最新文章
- 2016/05/03(接口 买票 临界资源同步锁)
- js检测、控制表单输入必须为中文
- golang map 存储函数
- Android自定义app图标,自定义app图标(Icon) - Cordova中文网
- 设计模式:备忘录模式(Memento)
- python enumerate_Python中enumerate用法详解
- 把人工智能、机器学习、深度学习串一串,串一个同心圆
- 数据库系列学习(三)-数据的增、删、改
- Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat
- 高性能跳频抗干扰宽带自组网电台
- html css前端框架,GitHub - zyj1022/wee: WEE—简单快速的响应式HTML/CSS前端框架
- 史上最全的Java面试题集锦在这里,带你碾压面试官!
- 《使用Python进行自然语言处理》学习笔记六
- 人工智能(A.I.)的几个常见基础定义及发展概述
- 为什么我从PR里面导出来的视频,在电脑上播放是正常的,微信发给朋友后,形状就变了,扭曲了一样的
- 瑞士轮 pascal
- 3、AspnetCore 在接口调用时不成功
- ctfshow萌新计划web22
- 毕业设计-互联网 + 背景下基于微信小程序的农产品分销系统
- 云计算机教室 安装学生机程序,云教室部署的五大步骤