36.平衡二叉树

平衡二叉树
  • 参与人数:2437时间限制:1秒空间限制:32768K
  •  算法知识视频讲解

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。
这道题承接上一题 二叉树的深度,边遍历边使用 getDepth()函数。
class Solution {
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
		if ( pRoot == NULL ) return true ;
        
        int left = getDepth( pRoot->left ) ;
        int right = getDepth( pRoot->right ) ;
        
        int val = left - right ;
        if ( val > 1 || val < -1 ) return false ;
        else return IsBalanced_Solution( pRoot->left ) && IsBalanced_Solution( pRoot->right ) ;
    }
    
	int getDepth(TreeNode* pNode) {  
        if (pNode == NULL) return 0;  
  
        int depthLeft = getDepth(pNode->left);  
        int depthRight = getDepth(pNode->right);  
  
        return depthLeft > depthRight ? depthLeft + 1 : depthRight + 1;  
    }  
};


你可能感兴趣的:(36.平衡二叉树)