二叉树的深度,平衡二叉树深度

题目描述

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

算法:
1、如果树为空,则深度为0
2、如果树不是空,那么深度是左子树的深度+1或右子树的深度+1.

class Solution { public: int TreeDepth(TreeNode* pRoot){ if(pRoot==NULL) return 0; return max(1+TreeDepth(pRoot->left),1+TreeDepth(pRoot->right)); } };
class Solution {
public:
//求树深度函数
    int TreeDepth(TreeNode* pRoot){
        if(pRoot==NULL)
            return 0;
        return max(1+TreeDepth(pRoot->left),1+TreeDepth(pRoot->right));    
    }
    //判断左子树深度和右子树深度差是否满足BST条件
    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(pRoot == NULL)
            return true;
        int left = TreeDepth(pRoot->left);
        int right = TreeDepth(pRoot->right);
        if(abs(left-right)>1)
            return false;

        return IsBalanced_Solution(pRoot->left) && IsBalanced_Solution(pRoot->right);
    }
};
    原文作者:平衡二叉树
    原文地址: https://blog.csdn.net/sinat_27612639/article/details/51883396
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞