[算法][力扣110]平衡二叉树

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

分析: 平衡二叉树的任意节点的左右子树高度差(平衡因子)绝对值不超过1

java 复制代码
public boolean isBalanced(TreeNode root) {
        int leftDeep = countDeep(root.left);
        int rightDeep = countDeep(root.right);
        return Math.abs((leftDeep - rightDeep)) <= 1 && isBalanced(root.left) && isBalanced(root.right);
    }

private int countDeep(TreeNode root) {
        // 递归跳出条件
        if (root == null) {
            return 0;
        }
        if (root.left == null && root.right == null) {
            return 1;
        }

        // 计算左右子树的节点个数
        int leftCount = countDeep(root.left);
        int rightCount = countDeep(root.right);

        // 左右子树节点的和 + 当前节点1
        return Math.max(leftCount, rightCount) + 1;
}
相关推荐
西岸行者29 分钟前
BF信号是如何多路合一的
算法
大熊背41 分钟前
ISP Pipeline中Lv实现方式探究之一
算法·自动白平衡·自动曝光
罗西的思考1 小时前
【OpenClaw】通过 Nanobot 源码学习架构---(5)Context
人工智能·算法·机器学习
Liudef062 小时前
后量子密码学(PQC)深度解析:算法原理、标准进展与软件开发行业的影响
算法·密码学·量子计算
OYpBNTQXi3 小时前
SEAL全同态加密CKKS方案入门详解
算法·机器学习·同态加密
yuannl104 小时前
数据结构----队列的实现
数据结构
蚂蚁数据AntData4 小时前
破解AI“机器味“困境:HeartBench评测实践详解
大数据·人工智能·算法·机器学习·语言模型·开源
ZC跨境爬虫4 小时前
Python异步IO详解:原理、应用场景与实战指南(高并发爬虫首选)
爬虫·python·算法·自动化
Mr_Xuhhh4 小时前
从ArrayList到LinkedList:理解链表,掌握Java集合的另一种选择
java·数据结构·链表
倦王4 小时前
力扣日刷47-补
python·算法·leetcode