zoukankan      html  css  js  c++  java
  • 二叉树的深度 | 判断是否为平衡二叉树

    判断二叉树深度

        int TreeDepth(TreeNode* pRoot)
        {
        if (pRoot==NULL)
            return 0;
            
        int left= TreeDepth(pRoot->left);
        int right= TreeDepth(pRoot->right);
            
        return  (left>right) ? (left+1) : (right+1);   
        }

    判断平衡二叉树 (任意节点的左右子树深度相差不超过1 ;那么是)

    class Solution {
    public:
        bool IsBalanced_Solution(TreeNode* pRoot) {//相差1 或者0
    
        if(pRoot==NULL)
           return true;
        //遍历当前节点深度
        int left= TreeDepth(pRoot->left);//左子树深度
        int right = TreeDepth(pRoot->right);//左子树深度     
           
            if(left-right>1||left-right<-1)
            {
                return false;  
            }
         return IsBalanced_Solution( pRoot->left)&&IsBalanced_Solution( pRoot->right); 
            
        }
        
        
        int TreeDepth(TreeNode* pRoot)
        {
        if (pRoot==NULL)
            return 0;
            
        int left= TreeDepth(pRoot->left);
        int right= TreeDepth(pRoot->right);
            
        return  (left>right) ? (left+1) : (right+1);   
        }
        
        
    };
  • 相关阅读:
    JavaScript 获取来源地址
    JavaScript 调试&显示变量
    JavaScript Math对象
    JavaScript 封闭函数
    常见泛型委托
    使用BindingSource绑定数据库
    Case Reply
    RSS订阅
    ADO.NET
    泛型的优点
  • 原文地址:https://www.cnblogs.com/cgy1012/p/11424230.html
Copyright © 2011-2022 走看看