Algorithms—110.Balanced Binary Tree

来源:互联网 发布:如何看懂软件 编辑:程序博客网 时间:2024/06/03 10:48

思路:比较左树和右树的深度,如果相差不超过1,继续判断左树和右树是否为平衡树。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public boolean isBalanced(TreeNode root) {        if (root==null) {return true;}        if (Math.abs(f(root.left)-f(root.right))>1) {return false;}        return isBalanced(root.left)&&isBalanced(root.right);    }    public int f(TreeNode root){    if (root==null) {return 0;}else {return 1+Math.max(f(root.left), f(root.right));}    }}


0 0
原创粉丝点击