题目描述
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。
给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
思路总结:一开始我以为二叉平衡树作为有序树的进化版怎么着也要检查二叉树是否有序的,结果看了一眼别人写的发现都只判断左右子树的高度是否满足平衡就行了,才知道默认的都是有序的二叉树(0-0);
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Balance {
public:
//此函数用来检查左右子树的高度之差的绝对值是不是小于等于1
int high_tree(TreeNode *root)
{