110. Balanced Binary Tree

来源:互联网 发布:毒性数据库 编辑:程序博客网 时间:2024/05/02 01:18

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.


可以算一下每个node的高度,算的同时可以比较是否满足两个子树高度相差不超过1的条件。

每个node,要求本身满足左右子树高度相差不超过1,左右子树也要递归满足条件才成立。

 public boolean isBalanced(TreeNode root){return getdeep(root)[1]==1;}private int[] getdeep(TreeNode t){if(t==null)return new int[] {0,1};int[] larr=getdeep(t.left);int[] rarr=getdeep(t.right);int leftdeep=larr[0];int rightdeep=rarr[0];int max=Math.max(leftdeep, rightdeep);boolean heightdis=larr[1]==1&&rarr[1]==1&&((Math.abs(leftdeep-rightdeep))<=1);return new int[] {max+1,heightdis==true?1:0};}


0 0
原创粉丝点击