zoukankan      html  css  js  c++  java
  • 判断二叉树是否平衡

    //                      1
    //              2             3
    //        4                         5
    //
    //
    
    class Solution {
    public:
        int maxDepth(TreeNode* root){
            if(root==NULL)
                return 0;
     
            return 1+max(maxDepth(root->left),maxDepth(root->right));
        }
        bool danbian(TreeNode *root)
            {
            if(root==NULL)
                return 1;
            if(root->left!=NULL && root->right!=NULL)
                return 0;
            if(root->left==NULL)
                ;//danbian(root->right);
            if(root->right==NULL)
                ;//danbian(root->left);
            return 1;
        }
        int minDepth(TreeNode* root){
            
            if(root==NULL)
                return 0;
    
            
    
             if(root->left == NULL) return minDepth(root->right) + 1;
             if(root->right == NULL) return minDepth(root->left) + 1;
    
            int leftDepth = minDepth(root->left);
            int rightDepth = minDepth(root->right);
            return leftDepth < rightDepth ? (leftDepth + 1) : (rightDepth + 1);
        }
        bool IsBalanced_Solution(TreeNode* pRoot) {
            int max=maxDepth(pRoot);
            int min=minDepth(pRoot);
            if(danbian(pRoot))
                min=1;
            if(max-min>1)
                return 0;
            return 1;
            
            
        }
    };
    

      

  • 相关阅读:
    repair table
    利用逻辑备份恢复部分库表
    Web框架理解
    BootStrape基础使用
    jQuery入门
    BOM操作
    DOM操作
    day12 css样式
    JavaScript基础
    day11 前端知识简单总结
  • 原文地址:https://www.cnblogs.com/laiqun/p/5894071.html
Copyright © 2011-2022 走看看