zoukankan      html  css  js  c++  java
  • 110. Balanced Binary Tree

    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 left and right subtrees of every node differ in height by no more than 1.

    Example 1:

    Input: root = [3,9,20,null,null,15,7]
    Output: true
    

    Example 2:

    Input: root = [1,2,2,3,3,null,null,4,4]
    Output: false
    

    Example 3:

    Input: root = []
    Output: true
    

    Constraints:

    • The number of nodes in the tree is in the range [0, 5000].
    • -104 <= Node.val <= 104

    怎样判断一棵根为r的树是否为AVL树??参考花花酱

    isBalanced(r)=abs(hl-hr)<=1&&isBalanced(r->left)&&isBalanced(r->right)

    求树的深度+递归

    class Solution {
    private:
        int depth(TreeNode* root){
            if(!root) return 0;
            else return 1+max(depth(root->left),depth(root->right));
        }
    public:
        bool isBalanced(TreeNode* root) {
            if(!root) return true;
            int hl=depth(root->left);
            int hr=depth(root->right);
            if(abs(hl-hr)<=1&&isBalanced(root->left)&&isBalanced(root->right))
                return true;
            return false;
            
        }
    };
    View Code
    Runtime: 8 ms, faster than 87.83% of C++ online submissions for Balanced Binary Tree.
    Memory Usage: 20.9 MB, less than 75.14% of C++ online submissions for Balanced Binary Tree.
  • 相关阅读:
    html pre 元素
    获取不重复随机数
    CSS查找匹配原理和简洁高效
    排序
    javascript 去数组重复项
    asp.net页面生命周期
    经典 Javascript 正则表达式
    深入理解JavaScript定时机制
    排序简介
    理解 JavaScript 闭包
  • 原文地址:https://www.cnblogs.com/Makerr/p/14681374.html
Copyright © 2011-2022 走看看