实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。
给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
import java.util.*;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}*/
public class Balance {
boolean flag = true;
public boolean isBalance(TreeNode root) {
// write code here
getLength(root);
return flag;
}
public int getLength(TreeNode root){
if(root == null) return 0;
int left,right;
left = right = 0;
if(root.left != null) left = getLength(root.left);
if(root.right != null) right = getLength(root.right);
if(left - right > 1 || right - left > 1) flag = false;
return (left > right) ? left + 1 : right + 1;
}
}
本文介绍了一个用于判断二叉树是否平衡的算法。通过递归计算每个节点的左右子树高度并比较高度差,确保整个树的平衡状态。文章提供了完整的Java实现代码。
1801

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



