`
cozilla
  • 浏览: 92568 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

[Leetcode] Balanced Binary Tree

 
阅读更多
Balanced Binary TreeOct 9 '127722 / 18479

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 ofevery node never differ by more than 1.

看清题目很重要!

这里balance的定义:任意子树的depth,相差都不超过1。

其实,我觉得balance的定义还可以是另外一种:任意两个叶节点(这里叶节点为null节点)的depth相差不超过1。这样的话,方法就变一下。不过大体还是相同的。

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isBalanced(TreeNode *root) {
        int l;
        return check(root, l);
    }
    
    bool check(TreeNode* cur, int &len) {
        if (cur == 0) {
            len = 0;
            return true;
        }
        
        int l, r;
        if (check(cur->left, l) && check(cur->right, r)) {
            len = max(l, r) + 1;
            return abs(l - r) <= 1;
        }
        return false;
    }
};

 

分享到:
评论

相关推荐

    leetcode的题目:Balanced Binary Tree

    在LeetCode的"Balanced Binary Tree"题目中,通常要求判断给定的二叉树是否是平衡的。这个问题可以通过递归或迭代的方式来解决。递归方法是分别检查左子树和右子树是否平衡,以及它们的高度。迭代方法则可以使用层次...

    java-leetcode-110-balanced-binary-tree

    java java_leetcode-110-balanced-binary-tree

    python-leetcode题解之110-Balanced-Binary-Tree

    python python_leetcode题解之110_Balanced_Binary_Tree

    js-leetcode题解之110-balanced-binary-tree.js

    javascript js_leetcode题解之110-balanced-binary-tree.js

    leetcode110-BinaryTree_HeightBalanced:力扣110

    至于提供的压缩包文件`BinaryTree_HeightBalanced-master`,它很可能包含了该问题的解决方案源代码,可能是用Python或其他编程语言实现的。解压后,你将能够看到具体的实现细节,包括如何创建二叉树节点、如何进行...

    Leetcode book刷题必备

    29. Convert Sorted Array to Balanced Binary Search Tree:将有序数组转换成平衡的二叉搜索树。 30. Convert Sorted List to Balanced Binary Search Tree:将有序链表转换成平衡的二叉搜索树。 31. Binary Tree ...

    Leetcode题目+解析+思路+答案.pdf

    - **Balanced Binary Tree**:判断一个二叉树是否是平衡的。 - **Path Sum**:判断是否存在一条路径,其节点值之和等于给定的目标值。 - **Binary Tree Depth Order Traversal**:二叉树的深度优先遍历。 - **...

    LeetCode最全代码

    * [Binary Search Tree](https://github.com/kamyu104/LeetCode#binary-search-tree) * [Breadth-First Search](https://github.com/kamyu104/LeetCode#breadth-first-search) * [Depth-First Search]...

    leetcode答案-leetcode-java:leetcode的Java代码

    leetcode 答案leetcode-java leetcode.com 的 Java 答案 ================索引================ com.leetcode.array Search a ...com.leetcode.list ...Balanced Binary Tree Maximum Depth of Binary Tree Same Tree

    leetcode分类-LeetCode:力码

    leetcode 分类 LeetCode Progress 128/154 Other Solutions C++,有详细思路解释 python,部分有解释 Java,部分有解释 ...norvig神牛Python代码写的很飘逸,果然是有LISP内功的人!...Balanced Binary Tree Binar

    左程云leetcode-algorithm-and-data-structure:算法+数据结构=程序

    左程云leetcode 数据结构和算法学习笔记 一、简介 1. 2. 3. 4. 5. 6. 二、数据结构 1. 二维数组(Array2D) 位数组(Bit Set) 静态数组(Fixed Size Array) 有序表(Ordered Array) 2. 队列(Queues) (后进先出...

    左程云leetcode-algorithm-and-data-structure:算法+数据结构=程序https://en.wikipedia

    左程云leetcode 数据结构和算法学习笔记 一、简介 1. 2. 3. 4. 5. 6. 二、数据结构 1. 二维数组(Array2D) 位数组(Bit Set) 静态数组(Fixed Size Array) 有序表(Ordered Array) 2. 队列(Queues) (后进先出...

    leetcode和oj-interviewprep:面试准备

    leetcode 和 oj 完整的面试准备文档 - 基于 GooglePrep.txt 推荐书籍 编程面试曝光:找到下一份工作的秘密,John Mongan、Eric Giguere、Noah Suojanen、Noah Kindler、John Wiley & Sons 算法导论,Thomas H. ...

    leetcode旋转-Leetcode:力码

    leetcode旋转 Leetcode 视频链接待补充:triangular_flag: 打卡 题目类型 题目编号 ...Balanced Binary Tree Leetcode #110 Day6 AVL Tree Leetcode #108 Day7 AVL Tree Rotation 补充AVL Tree旋转操作

    leetcode java

    - 平衡二叉树(Balanced Binary Tree)问题需要检查一棵树是否是平衡的。 **位操作(Bit Manipulation)** 位操作是高级的编程技能,涉及到位运算。 - "只出现一次的数字"(Single Number)题目要求找出数组中只...

    leetcode双人赛-js-structures:JS结构体问题及解决方法

    balanced binary search tree - 对于给定的初始值,自动生成平衡二叉搜索树。 [] 算法 BFS JS实现2 Leetcode问题解决 问题 洪水填充问题(已解决):油漆问题。 给定一个由矩阵表示的图像,绘制一个像素 (src) 和...

    maycope#Leetcode-Classic#1.5 二叉树是否平衡1

    1.5 二叉树是否平衡Given a binary tree, determine if it is height-balanced.For this prob

    python-leetcode面试题解之第110题平衡二叉树-题解.zip

    本压缩包文件聚焦于Python语言和LeetCode上的第110题——“平衡二叉树”(Balanced Binary Tree)。平衡二叉树是一种特殊的二叉树结构,它的左子树和右子树的高度差不超过1,并且左右子树都是平衡二叉树。 首先,...

    常见算法题答案及解析

    28. Balanced Binary Tree:判断二叉树是否为平衡二叉树。 29. Convert Sorted Array to Binary Search Tree:将有序数组转换为高度平衡的二叉搜索树。 30. Convert Sorted List to Binary Search Tree:将有序链表...

Global site tag (gtag.js) - Google Analytics