/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isBalanced(TreeNode root) { int b = b(root); if(b==-1){ return false; } return true; } public int b(TreeNode node){ if(node==null){ return 0; } int lb = b(node.left); int rb = b(node.right); if(lb==-1 || rb==-1 || Math.abs(lb-rb)>1){ return -1; } return 1+Math.max(lb,rb); } }
相关推荐
在LeetCode的"Balanced Binary Tree"题目中,通常要求判断给定的二叉树是否是平衡的。这个问题可以通过递归或迭代的方式来解决。递归方法是分别检查左子树和右子树是否平衡,以及它们的高度。迭代方法则可以使用层次...
在LeetCode的第110题“Binary Tree Height Balanced”中,我们被要求判断一个二叉树是否是平衡二叉树。平衡二叉树是一种特殊的二叉树结构,它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡...
- 计算二叉树的最大深度(Maximum Depth of Binary Tree)考察递归的使用。 - 平衡二叉树(Balanced Binary Tree)问题需要检查一棵树是否是平衡的。 **位操作(Bit Manipulation)** 位操作是高级的编程技能,涉及...
leetcode lintcode差异 Lintcode 解题思路记录 Table of Contents Linked List Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in ascending order, convert it ...
本压缩包文件聚焦于Python语言和LeetCode上的第110题——“平衡二叉树”(Balanced Binary Tree)。平衡二叉树是一种特殊的二叉树结构,它的左子树和右子树的高度差不超过1,并且左右子树都是平衡二叉树。 首先,...
2. **二叉树**:二叉树问题是算法面试中的常客,例如“二叉树的遍历”(Preorder, Inorder, Postorder Traversal)、“判断是否为平衡二叉树”(Balanced Binary Tree)等。JavaScript 中可以用对象来表示节点,通过...
1. **数据结构**:数组(Array)、链表(LinkedList)、栈(Stack)、队列(Queue)、哈希表(HashMap)、堆(Heap)、二叉树(Binary Tree)、平衡二叉树(Balanced BinaryTree)、红黑树(Red-Black Tree)等。...
- **平衡二叉树** (Balanced Binary Tree, BBT): 又称AVL树,是一种特殊的二叉搜索树,其中每个节点的左右子树都是平衡的,且两者的高度差不超过1。 #### 3. 关键基本操作的具体实现 - **旋转操作**: - **左旋** ...
平衡二叉树(Balanced Binary Tree)是二叉树的一种特殊类型,它具有良好的平衡特性,即左右子树的高度差的绝对值不超过1。这种平衡使得二叉树在进行查找、插入和删除等操作时能保持较高的效率。 在给定的问题中,...
算法是用Java实现的。 将来我会尝试添加C ++版本。 如果您想这样做或使用任何其他语言,请随时提出请求。 创建资源库的主要目的是学习算法,并为想要提高问题解决能力的人员提供帮助。 我将尝试定期添加新算法。 ...