首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
判断二叉树是否为平衡二叉树
[编程题]判断二叉树是否为平衡二叉树
热度指数:21580
时间限制: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收藏
21061浏览
热门推荐
通过挑战的用户
查看代码
玛卡不巴卡
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
评论
(4)
来自
360公司2016研发工...
回路
dfs
评论
(51)
能正确表示逻辑式“a≥10或a≤0...
C++
C语言
评论
(1)
杨辉三角
递归
思维题
评论
(1)
请你罗列出3家严选对标的同类型竞争...
竞品研究
评论
(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