int height(node *head)
{
if (head == NULL)
return 0;
int a = height(head->lchild);
int b = height(head->rchild);
return max(a, b) + 1;
}
bool balancetree(node *head)
{
if (!head)
return true;
if (abs(height(head->lchild) - height(head->rchild)) <= 1)
if (balancetree(head->lchild))
if (balancetree(head->rchild))
return true;
return false;
}
uj5u.com熱心網友回復:
https://blog.csdn.net/qq_21201267/article/details/100783394可以參考的博客
bool isBalanced(TreeNode* root) {
bool bal = true;
balence(root,bal);
return bal;
}
int balence(TreeNode* root, bool &bal)
{
if(!bal)
return -1;
if(root == NULL)
return 0;
int left_height = balence(root->left,bal);
int right_height = balence(root->right,bal);
if(abs(left_height-right_height)>1)
bal = false;
return max(left_height,right_height)+1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84738.html
標籤:新手樂園
上一篇:01-05--04-13記錄
下一篇:單鏈表的基本操作
