标签:
题目链接: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