题目
- 输入一棵二叉树的根结点,判断该树是不是平衡二叉树。
- 如果某二叉树中任意结点的左右子树的深度相差不超过 1,那么它就是一棵平衡二叉树。
- 数据范围
树中节点数量 [0, 500]。
- 注意:规定空树也是一棵平衡二叉树。
示例
- 输入:二叉树[5, 7, 11, null, null, 12, 9, null, null, null, null] 如下所示,
5
/ \
7 11
/ \
12 9
- 输出:true
代码
- DFS
class Solution {
public:
bool res = true;
bool isBalanced(TreeNode* root) {
if(!root) return true;
dfs(root);
return res;
}
int dfs(TreeNode* node){
if(!node) return 0;
int left = dfs(node->left), right = dfs(node->right);
if(abs(left - right) > 1) res = false;
return max(left, right) + 1;
}
};
代码分析
:刚开始我以为每个节点都要判断,结果发现这道题只用判断整体
题目
:平衡二叉树