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);   
        }
        
        
    };
  • 相关阅读:
    html表格,table标签
    2-3VRP的基本配置
    6 sys模块
    3 datetime模块
    2 time模块
    1 模块和包的介绍
    12 函数进阶---生成器
    13 函数进阶---迭代器
    10 函数进阶---闭包
    11 函数进阶---装饰器
  • 原文地址:https://www.cnblogs.com/cgy1012/p/11424230.html
Copyright © 2011-2022 走看看