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.
  • 相关阅读:
    react 踩坑第一天
    vue-cli+axios+跨域
    vuex 进阶 mapState mapGetter mapActions mapMutations
    vue Bus
    各种html布局
    echarts柱状图设置渐变色
    html设置一个当前时间
    css设置字体渐变色
    C++中指针与引用详解
    go-admin 开源后台管理系统
  • 原文地址:https://www.cnblogs.com/Makerr/p/14681374.html
Copyright © 2011-2022 走看看