您的位置:首页 > 编程语言 > Java开发

平衡二叉树Java实现

2017-10-04 09:48 141 查看
输入一棵二叉树,判断该二叉树是否是平衡二叉树。

思路:判断一下这棵二叉树的左右子树的高度差是否小于1;再判断一下左右子树是否也为平衡二叉树。

public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if (root == null)
return true;

if (Math.abs(getHeight(root.left) - getHeight(root.right)) > 1)
return false;

return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);
}
public int getHeight(TreeNode root) {
if (root == null)
return 0;
return max(getHeight(root.left), getHeight(root.right)) + 1;
}

private int max(int a, int b) {
return (a > b) ? a : b;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息