# 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

 

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:true

示例 2:

输入:root = [1,2,2,3,3,null,null,4,4]
输出:false

示例 3:

输入:root = []
输出:true

 

提示:

## template ```cpp #include using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: int depth(TreeNode *root) { if (root == NULL) return 0; int left = depth(root->left); int right = depth(root->right); return max(left, right) + 1; } bool isBalanced(TreeNode *root) { if (root == NULL) return true; if (abs(depth(root->left) - depth(root->right)) > 1) return false; else return isBalanced(root->left) && isBalanced(root->right); } }; ``` ## 答案 ```cpp ``` ## 选项 ### A ```cpp ``` ### B ```cpp ``` ### C ```cpp ```