魔法师 (@Constanline) 在 Leetcode每日一题 —— 110. 平衡二叉树 中发帖
思路
平衡二叉树,即左右子树高度差不超过1。
判断是否平衡二叉树,递推左右子树计算高度后比较即可。
如果想快一点,可以发现不平衡直接返回。
代码
public boolean isBalanced(TreeNode root) {
// -1表示不平衡
return calcHeight(root) >= 0;
}
private int calcHeight(TreeNode root) {
if (root == null) {
return 0;
}
// 计算左子树和右子树,-1表示不平衡
int left = calcHeight(root.left);
if (left == -1) {
...