zoukankan      html  css  js  c++  java
  • LeetCode 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 depth of the two subtrees of every node never differ by more than 1.

    Example 1:

    Given the following tree [3,9,20,null,null,15,7]:

    
    

    Return true.

    Example 2:

    Given the following tree [1,2,2,3,3,null,null,4,4]:

    
    

    Return false.

    判断是否为平衡二叉树

    c++

    class Solution {
    public:
        bool isBalanced(TreeNode* root) {
            if(root == NULL) return true;
            bool tagleft=true;bool tagright=true;
            int dleft=0;int dright=0;
            if(root->left!=NULL)
                tagleft = isBalanced(root->left);
            if(root->right!=NULL)
                tagright = isBalanced(root->right);
            
            if(root->left!=NULL)
                dleft = deep(root->left);
            if(root->right!=NULL)
                dright = deep(root->right);
            
            if(tagleft&&tagright&&abs(dleft-dright)<=1)
                return true;
            else
                return false;
            
        }
        
        int deep(TreeNode* root)
        {
            
            int dleft=0;int dright=0;
            if(root->left!=NULL)
                dleft = deep(root->left);
            if(root->right!=NULL)
                dright = deep(root->right);
            
            return max(dleft,dright)+1;
        }
    };
  • 相关阅读:
    简单数学问题
    MFC 注册表编程
    Windows多线程端口扫描
    MFC Socket双向通信
    凯撒加密
    单片机滤波
    大数素性检验
    大数加法乘法
    Unsafe Code
    委托
  • 原文地址:https://www.cnblogs.com/dacc123/p/9239997.html
Copyright © 2011-2022 走看看