Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { if (solve(root) == -1) { return false; } return true; } private int solve(TreeNode root) { if (root == null) { return 0; } int left = solve(root.left); if (left == -1) { return -1; } int right = solve(root.right); if (right == -1) { return -1; } if (Math.abs(left-right) > 1) { return -1; } else { return Math.max(left, right)+1; } } }
相关推荐
平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树,它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 平衡二叉树的主要优点在于它能保持较好的搜索性能。在二叉搜索树...
在本项目中,“Balanced-binary-tree.rar”是一个压缩包,包含了一个C++实现平衡二叉树的实例,对于学习C++编程以及理解数据结构的深度是很有帮助的。 平衡二叉树分为几种类型,如AVL树和红黑树。AVL树是最先被提出...
- **平衡二叉树**(Balanced Binary Tree): 任意两个叶子节点之间的深度差不大于1。 - **二叉搜索树**(Binary Search Tree): 对于任意节点,其左子树中的所有节点的值小于该节点的值,其右子树中的所有节点的值大于该...
- **平衡二叉树(Balanced Binary Tree)**:左右子树的高度差不超过1,如AVL树和红黑树。 3. **C++中的二叉树实现**: 在C++中,我们通常通过结构体或类来表示二叉树的节点。节点通常包含数据和指向子节点的指针...
在这个场景中,我们关注的是一个用C语言实现的特定版本,它基于平衡二叉树(Balanced Binary Tree)来实现Map。平衡二叉树是一种特殊的二叉树,它的每个节点都包含一个键和一个关联的值,同时树的高度保持平衡,这...
在这个"java-二叉树binaryTree"主题中,我们将深入探讨二叉树的实现、操作以及相关的算法。 在Java编程语言中,二叉树可以被表示为一个类,这个类通常包含指向左右子节点的引用,以及可能包含的数据。下面是一个...
平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树数据结构,它的主要特性在于保持了树的高度平衡。这种平衡状态使得在二叉查找树(Binary Search Tree, BST)中的操作,如插入、删除和搜索等,都能在对数时间...
java java_leetcode-110-balanced-binary-tree
python python_leetcode题解之110_Balanced_Binary_Tree
- 平衡二叉树(Balanced Binary Tree):左右两个子树的高度差不超过1,并且每个节点都包含左子树和右子树。 - 红黑树(Red-Black Tree):一种自平衡二叉查找树,满足特定的颜色属性,保证了插入和删除操作的时间...
javascript js_leetcode题解之110-balanced-binary-tree.js
- **平衡二叉树(Balanced Binary Tree)**:如AVL树和红黑树,保持左右子树高度平衡,确保搜索效率。 - **B树与B+树**:常用于数据库和文件系统,支持高效的范围查询和插入操作。 - **哈夫曼树(Huffman Tree)*...
在本篇博客中,我们将深入探讨如何判断一个给定的二叉树是否为二叉平衡树,以及通过`BinaryTree.java`文件来实现这一功能。 首先,我们需要理解二叉树的基本概念。二叉树是由节点构成的,每个节点最多有两个子节点...
- **平衡二叉树(Balanced Binary Tree)**:左右子树的高度差不超过1,如AVL树和红黑树。 4. **树的实现** - 在JavaScript中,可以使用对象来表示树的节点,每个节点包含数据、指向子节点的引用以及可能的父节点...
平衡二叉树(Balanced Binary Tree)又被称为AVL树。具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法。 实验目的: 二叉排序树的实现...
平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),它具有以下性质: 1. 它是一棵空树或它的左右两个子树的高度差的绝对值不超过1。 2. 左右两个子树都是一棵平衡二叉树。 平衡二叉树大部分操作和...
- **平衡二叉树(Balanced Binary Tree)**: 左右子树的高度差不超过1,如AVL树和红黑树。 - **二叉搜索树(Binary Search Tree, BST)**: 左子树中的所有节点值小于父节点,右子树中的所有节点值大于父节点。 3....
5. **平衡二叉树(Balanced Binary Tree)** - 为了优化查找性能,平衡二叉树如AVL树和红黑树等,确保树的左右子树高度差不超过1,保持树的平衡。 6. **二叉搜索树(Binary Search Tree, BST)** - 左子树上的...
平衡二叉树(Balanced Binary Tree),简称平衡树(AVL树):树上任一结点的左子树和右子树的高度之差不超过1。平衡二叉树的一系列操作:删除、插入(在二叉排序树中插入新结点后,如何保持平衡)、调整平衡等等等。...