給定一個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為:一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過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;}
}