给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ \9 20/ \15 7
返回 true 。
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {boolean res=true;public boolean isBalanced(TreeNode root) {getBalanced(root);return res;}public int getBalanced(TreeNode root) {if(root==null||!res) return 0;int le=getBalanced(root.left),ri=getBalanced(root.right);//获取左右子树高度if(Math.abs(le-ri)>1) res=false;//不平衡return Math.max(le,ri)+1;}
}