二叉树的深度是指从根节点开始(根节点为第一层)直到最下面一层叶节点的层数,它是自上而下的。
二叉树的高度是指从最下面一层的叶节点(高度为1)自下向上逐层加一,直到根节点。而且二叉树的高度等于左右子树的高度加一。
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
};
int depth(TreeNode * root)
{
if (root == NULL)
{
return 0;
}
else
{
int hl=depth(root->left);
int hr=depth(root->right);
if (hl > hr)
{
return hl + 1;
}
else
return hr + 1;
}
}
bool isBalanced(TreeNode *root) {
int hl=0;
int flag = true;
if (root != NULL)
{
hl = depth(root->left);
int hr = 0;
hr = depth(root->right);
if (abs(hl - hr) >= 2)
{
flag = false;
}
else
{
if (isBalanced(root->left) && isBalanced(root->right))
flag = true;
else
flag = false;
}
}
return flag;
}