https://leetcode.com/problems/balanced-binary-tree/description/
题目描述:Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
分析:判断一颗二叉树是平衡二叉树
解题思路:左右子树的高度只差不大于1为平衡二叉树。计算出二叉树中各个节点的高度,通过先序遍历,递归判断每个节点是否满足平衡二叉树的要求。注:空树是一课平衡二叉树。
public boolean isBalanced(TreeNode root){
if(root==null){
return true;
}
if(Math.abs(getHeight(root.left)-getHeight(root.right))>1){
return false;
}else{
return isBalanced(root.left)&&isBalanced(root.right);
}
}
public int getHeight(TreeNode root){
if(root==null)return 0;
//叶子结点
if(root.left==null&&root.right==null){
return 1;
}
return Math.max(getHeight(root.left),getHeight(root.right))+1;
}