判断平衡二叉树
/*
判断平衡二叉树
平衡二叉树特点:
左右子树高度差之多为1(<=1)
*/
#include <iostream>
using namespace std;
struct TreeNode
{
int val;
struct TreeNode *L;
struct TreeNode *R;
TreeNode(int x):
val(x),L(NULL),R(NULL){}
};
class Balance
{
public:
/*
Tree Depth
*/
int Depth(TreeNode *root)
{
if(root==NULL)
{
return 0;
}
int LeftDepth=Depth(root->L)+1;
int RightDepth=Depth(root->R)+1;
return((LeftDepth>RightDepth)?LeftDepth:RightDepth);
}
bool isBalance(TreeNode *root)
{
int LD=Depth(root->L);
int RD=Depth(root->R);
if(abs(LD-RD)>1)
{
false;
}
return true;
}
}
int main(void)
{
}
posted on 2017-09-21 15:49 HelloWorldTotti 阅读(96) 评论(0) 收藏 举报
浙公网安备 33010602011771号