当前位置: 首页 > 图灵资讯 > 技术篇> #yyds干货盘点# LeetCode程序员面试金典:平衡二叉树

#yyds干货盘点# LeetCode程序员面试金典:平衡二叉树

来源:图灵教育
时间:2023-05-23 09:24:50

题目:

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

在这个问题中,一棵高度平衡的二叉树被定义为:

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

示例 1:

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

输出:true

示例 2:

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

输出:false

示例 3:

输入:root = []

输出:true

代码实现:

class Solution {    public boolean isBalanced(TreeNode root) {        if (root == null) {            return true;        } else {            return Math.abs(height(root.left) - height(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right);        }    }    public int height(TreeNode root) {        if (root == null) {            return 0;        } else {            return Math.max(height(root.left), height(root.right)) + 1;        }    }}