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