//二叉树的节点的定义
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));
}
}
求一颗二叉树是否为平衡二叉树
原文作者:平衡二叉树
原文地址: https://blog.csdn.net/zuochao_2013/article/details/81142970
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/zuochao_2013/article/details/81142970
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。