判断一棵树是不是平衡树(数值大小不判断,只盼高度)

时间:2022-12-21 20:29:35

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
int dep=0;
return dfs(pRoot,dep);
}
bool dfs(TreeNode* p,int &dep)
{
if(p==NULL)
{
dep=0;
return true;
}
int ledep=0,ridep=0;
if(!dfs(p->left,ledep)) return false;
if(!dfs(p->right,ridep)) return false;
int s=ledep-ridep;
if(s>1||s<-1) return false;
dep=max(ledep,ridep)+1;
return true;
}
};