- 浏览: 183488 次
- 性别:
- 来自: 济南
文章分类
最新评论
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.
判断一颗树是否是平衡树。我们先判断根节点左右子树的深度,比较它们的高度差,如果大于1就返回false,如果小于1,递归判断左右子树是否为平衡树。代码如下:
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.
判断一颗树是否是平衡树。我们先判断根节点左右子树的深度,比较它们的高度差,如果大于1就返回false,如果小于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(root == null) return true; int left = getDepth(root.left, 1); int right = getDepth(root.right, 1); if(left - right > 1 || left - right < -1) { return false; } else { return isBalanced(root.left) && isBalanced(root.right); } } public int getDepth(TreeNode root, int depth) { if(root == null) return depth; return Math.max(getDepth(root.left, depth + 1), getDepth(root.right, depth + 1)); } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 265Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 267You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 384Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 374Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 497Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 563Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 475Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 664Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 469The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 429Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 575Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 580Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 426All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 898Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 930Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 602Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 673Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 842Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 783You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 704For a undirected graph with tre ...
相关推荐
平衡二叉树(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。平衡二叉树的一系列操作:删除、插入(在二叉排序树中插入新结点后,如何保持平衡)、调整平衡等等等。...