判断一个树是否为平衡二叉树

Posted 学物联网的小邓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个树是否为平衡二叉树相关的知识,希望对你有一定的参考价值。

题目:判断一棵树是否为平衡二叉树

描述:给定一棵树,要求判断其是否为平衡二叉树,左右高度差的绝对值不大于1

题解:先求得左右各自的深度,在做比较,,如果树的高度为0就返回true,如果度差大于1就返回false,如果小于1,就对左右分别进行此操作;

/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */
//想法先求左右两个的高度,然后比较绝对值是否大于1//求高度int deepth(struct TreeNode* t){ int h1,h2; if(t==NULL) { return 0; } else { h1=deepth(t->left); h2=deepth(t->right); if(h1>h2) { return (h1+1); } else { return (h2+1); } }}bool isBalanced(struct TreeNode* root){ if(root==NULL) return true;//如果为空则true int deepthleft=deepth(root->left); int deepthright=deepth(root->right); //求得左右深度 if((deepthleft-deepthright)>1||(deepthleft-deepthright)<-1) return false; return isBalanced(root->left)&&isBalanced(root->right);}

欢迎关注我一起努力加油


以上是关于判断一个树是否为平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

python判断二叉树是否为平衡二叉树

判断二叉树是否为平衡二叉树

平衡二叉树判断

判断一个树是否为平衡二叉树

左神直通BAT之判断一个树是否是平衡二叉树

"Coding Interview Guide" -- 判断二叉树是否为平衡二叉树