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.
  • 相关阅读:
    互联网对实体经济的三轮冲击
    虎嗅网
    RabbitMQ实战-死信队列
    RabbitMQ实战
    Hadoop之MapReduce流程
    Hadoop之HDFS读写流程
    GitHub预览网页[2019最新]
    Java操作Hadoop集群
    Hadoop分布式集群搭建
    Hadoop Local(本地)模式搭建
  • 原文地址:https://www.cnblogs.com/Makerr/p/14681374.html
Copyright © 2011-2022 走看看