leetcode 110. 平衡二叉树 简单

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

示例 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

提示:

  • 树中的节点数在范围 [0, 5000]
  • -10^4 <= Node.val <= 10^4

分析:一棵树是平衡的,要么它是空树,要么它的左子树和右子树的高度之差的绝对值小于等于 1.用一个函数计算一个节点的子树高度,主函数内递归地判断所有的节点是否平衡。

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int height(struct TreeNode* node)
{
    if(node==NULL)return 1;
    return fmax(height(node->left),height(node->right))+1;
}
bool isBalanced(struct TreeNode* root) {
    if(root==NULL)return true;
    if(isBalanced(root->left)&&isBalanced(root->right)&&abs(height(root->right)-height(root->left))<=1)return true;
    return false;
}
相关推荐
Xin77010 小时前
LeetCode 23.合并 K 个升序链表(分治递归)
leetcode
Nil20812 小时前
leetcode 105从前序和中序遍历序列构造二叉树
算法·leetcode·职场和发展
Nil20813 小时前
leetcode 114二叉树展开为链表
leetcode·链表·深度优先
cz071013 小时前
hot100_搜索二维矩阵 II
算法·leetcode
圣保罗的大教堂15 小时前
leetcode 3718. 缺失的最小倍数 简单
leetcode
青 春 记 忆16 小时前
LeetCode 234. 回文链表|Python 解法详解
python·leetcode·链表
啊嘞嘞?18 小时前
力扣(LRU缓存)
算法·leetcode
啊嘞嘞?18 小时前
力扣(下一个排列)
算法·leetcode
Forever Nore19 小时前
LeetCode 16 最接近的三数之和 - 双指针逼近
算法·leetcode·职场和发展
smj2302_7968265219 小时前
解决leetcode第4033题有效K个不同元素子数组I
数据结构·python·算法·leetcode