
思路:
遍历每个节点,借助一个获取树深度的递归函数,根据该节点的左右子树高度差判断是否平衡,然后递归地对左右子树进行判断。
实现:
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
return getDept(root) != -1;
}
private int getDept(TreeNode root){
if(root == null) return 0;
int left = getDept(root.left);
if(left == -1) return -1;
int right = getDept(root.right);
if(right == -1) return -1;
return Math.abs(left - right) > 1 ? -1 : 1 + Math.max(left , right);
}
}
本文介绍了一种通过递归获取树深度的方法来判断二叉树是否平衡的算法。核心思路是在遍历每个节点时,利用递归函数计算左右子树的高度差,以此判断整棵树的平衡状态。
149

被折叠的 条评论
为什么被折叠?



