首页 > 试题广场 >

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

[编程题]判断二叉树是否为平衡二叉树
  • 热度指数:21580 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
本题要求判断给定的二叉树是否是平衡二叉树
平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。
一颗树的高度指的是树的根节点到所有节点的距离中的最大值。
示例1

输入

{1,#,2,#,3}

输出

false
示例2

输入

{2,1,3}

输出

true

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 一叶浮尘
发表于 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 展开全文