//二叉树的节点的定义
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(TreeDeep(root.left)-TreeDeep(root.right))>1)
return false;
return isBalanced(root.left)&&isBalanced(root.right);
}
//写一个函数求二叉树的深度
public int TreeDeep(TreeNode root){
if(root==null) return 0;
return Math.max(TreeDeep(root.left),TreeDeep(root.right))+1;
}
public static void main(String[]args){
//System.out.println("Hello World!");
TreeNode root=new TreeNode(1);
root.left=new TreeNode(2);
root.right=new TreeNode(3);
root.left.left=new TreeNode(4);
root.left.left.left=new TreeNode(5);
Solution s=new Solution();
System.out.println(s.isBalanced(root));
}
}
求一颗二叉树是否为平衡二叉树
最新推荐文章于 2020-09-09 14:54:00 发布