标签:
题目链接:https://leetcode.com/problems/balanced-binary-tree/
题目:
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则返回false,不然就继续判断左右子树是否平衡
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isBalanced(TreeNode root) {
if(root == null)
return true;
if(Math.abs(getDeepth(root.left, 1) - getDeepth(root.right, 1)) > 1) {
return false;
} else {
return isBalanced(root.left) && isBalanced(root.right);
}
}
public int getDeepth(TreeNode root, int curDep) {
if(root == null) {
return curDep;
} else {
return Math.max(getDeepth(root.left, curDep+1), getDeepth(root.right, curDep+1));
}
}
}版权声明:本文为博主原创文章,未经博主允许不得转载。
LeetCode: Balanced Binary Tree
标签:
原文地址:http://blog.csdn.net/yangyao_iphone/article/details/48031097