首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
判断二叉树是否为平衡二叉树
[编程题]判断二叉树是否为平衡二叉树
热度指数:21707
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M
算法知识视频讲解
本题要求判断给定的二叉树是否是平衡二叉树
平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。
一颗树的高度指的是树的根节点到所有节点的距离中的最大值。
示例1
输入
{1,#,2,#,3}
输出
false
示例2
输入
{2,1,3}
输出
true
说明:本题目包含复杂数据结构TreeNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(8)
邀请回答
收藏(100)
分享
提交结果有问题?
127个回答
7篇题解
开通博客
一叶浮尘
发表于 2020-04-04 18:24:09
判断给定的二叉树是否是平衡的在这个问题中,定义平衡二叉树为每个节点的左右两个子树高度差的绝对值不超过1的二叉树 这道题目在剑指offer里面练习过,一般二叉树的题用递归就可以解决,但是这道题该递归函数,既要承载是否为平衡树的判断,又要承载高度的计算,所以需要想一种方法将这两种结果融合在一起。 pub
展开全文
O-Precedence
发表于 2021-09-08 10:37:27
利用两个递归函数,第一个递归函数是用来求当前结点的左右子树的高度;第二个递归函数是用来判断当前节点的左右子树是不是平衡二叉树。 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode lef
展开全文
华科不平凡
发表于 2020-08-21 19:02:24
后序遍历: class Solution { public: /** * * @param root TreeNode类 * @return bool布尔型 */ bool isBalanced(TreeNode* root) {
展开全文
you_config
发表于 2025-03-03 23:01:38
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNo
展开全文
int24
发表于 2023-05-28 21:38:44
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class Solution { public: /** * * @
展开全文
城志
发表于 2020-02-22 11:34:57
树形动态规划 1.套路 1.1 可能性分析 如果root的左子树不是平衡二叉树,则root不是。 如果root的右子树不是,则root不是。 如果root的左右子树的高度差超过1,则root不是。 如果以上三种没出现,那么root是平衡的。 1.2 建立数据结构 根据可能性分析列出每个结点所需信
展开全文
开挂了的回宇同桌很有趣
发表于 2021-09-29 16:15:35
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Sol
展开全文
问题信息
树
dfs
难度:
127条回答
100收藏
21913浏览
热门推荐
通过挑战的用户
查看代码
玛卡不巴卡
2023-02-21 11:17:45
小鬼头的小迷弟
2022-09-22 21:08:03
牛客38441...
2022-09-14 16:44:48
牛客61312...
2022-09-11 15:58:03
牛客84407...
2022-09-03 18:09:28
相关试题
回路
dfs
评论
(51)
分支限界法与回溯法的相同点是()
dfs
评论
(4)
来自
360公司2016研发工...
华华给月月准备礼物
思维题
评论
(5)
一个ISR作为单一生产者,需要向单...
FreeRTOS
评论
(1)
关于 asyncio 并发模型,以...
Python
评论
(1)
判断二叉树是否为平衡二叉树
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return bool布尔型 */ public boolean isBalanced (TreeNode root) { // write code here } }
/** * 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 } };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @return bool布尔型 # class Solution: def isBalanced(self , root ): # write code here
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * * @param root TreeNode类 * @return bool布尔型 */ function isBalanced( root ) { // write code here } module.exports = { isBalanced : isBalanced };
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @return bool布尔型 # class Solution: def isBalanced(self , root ): # write code here
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * * @param root TreeNode类 * @return bool布尔型 */ func isBalanced( root *TreeNode ) bool { // write code here }
{1,#,2,#,3}
false
{2,1,3}
true