判断二叉树是否是平衡二叉树

来源:互联网 发布:游光网络拉勾网 编辑:程序博客网 时间:2024/05/21 10:07
class TreeNode {    int val;    TreeNode left;    TreeNode right;    TreeNode(int x) {        val = x;    }    TreeNode(int x, TreeNode left, TreeNode right) {        this.val = x;        this.left = left;        this.right = right;    }}public class Solution {    public int getHeight(TreeNode root) {        if (root == null)            return 0;        return Math.max(getHeight(root.left), getHeight(root.right)) + 1;    }    public boolean isBalanced(TreeNode root) {        if (root == null)            return true;        int leftHeight = getHeight(root.left);        int rightHeight = getHeight(root.right);        return Math.abs(leftHeight - rightHeight) <= 1 && isBalanced(root.left) && isBalanced(root.right);    }    public static void main(String[] args) {        TreeNode _15 = new TreeNode(15);        TreeNode _7 = new TreeNode(7);        TreeNode _9 = new TreeNode(9);        TreeNode _20 = new TreeNode(20, _15, _7);        TreeNode _3 = new TreeNode(3, _9, _20);        System.out.println(new Solution().isBalanced(_3));    }}
0 0