首页 > 代码库 > Balanced Binary Tree leetcode java
Balanced Binary Tree leetcode java
题目:
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.
题解:
采用递归的方法,要记录depth用来比较。
代码如下:
1 public int checkBalanced(TreeNode t){
2 if(t==null)
3 return 0;
4
5 int leftheight = checkBalanced(t.left);
6 if(leftheight == -1)
7 return -1;
8
9 int rightheight = checkBalanced(t.right);
10 if(rightheight == -1)
11 return -1;
12
13 if(Math.abs(leftheight-rightheight)>1)
14 return -1;
15 else
16 return Math.max(leftheight,rightheight)+1;
17 }
18
19 public boolean isBalanced(TreeNode root) {
20 if(checkBalanced(root) == -1)
21 return false;
22 else
23 return true;
24 }
2 if(t==null)
3 return 0;
4
5 int leftheight = checkBalanced(t.left);
6 if(leftheight == -1)
7 return -1;
8
9 int rightheight = checkBalanced(t.right);
10 if(rightheight == -1)
11 return -1;
12
13 if(Math.abs(leftheight-rightheight)>1)
14 return -1;
15 else
16 return Math.max(leftheight,rightheight)+1;
17 }
18
19 public boolean isBalanced(TreeNode root) {
20 if(checkBalanced(root) == -1)
21 return false;
22 else
23 return true;
24 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。