判断平衡二叉树

/*
	判断平衡二叉树
	平衡二叉树特点:
		左右子树高度差之多为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  阅读(91)  评论(0编辑  收藏  举报

导航