lintcode-medium-Balanced Binary Tree
Posted 哥布林工程师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode-medium-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.
Given binary tree A={3,9,20,#,#,15,7}
, B={3,#,20,15,7}
A) 3 B) 3 / \ 9 20 20 / \ / 15 7 15 7
The binary tree A is a height-balanced binary tree, but B is not.
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: True if this Binary tree is Balanced, or false. */ public boolean isBalanced(TreeNode root) { // write your code here if(getDepth(root) != -1) return true; else return false; } public int getDepth(TreeNode root){ if(root == null) return 0; int left = getDepth(root.left); int right = getDepth(root.right); if(Math.abs(left - right) > 1) return -1; if(left == -1 || right == -1) return -1; return Math.max(left, right) + 1; } }
以上是关于lintcode-medium-Balanced Binary Tree的主要内容,如果未能解决你的问题,请参考以下文章