题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
代码
思路:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。遍历左子树和右子树的深度,然后比较二者差值
function IsBalanced_Solution(pRoot)
{
// write code here
if(pRoot==null) return true;
var left=TreeDepth(pRoot.left);
var right=TreeDepth(pRoot.right);
if((left-right)>1||(left-right)<-1){
return false;
}
return IsBalanced_Solution(pRoot.left)&&IsBalanced_Solution(pRoot.right)
}
function TreeDepth(root){
if(root==null) return 0;
var left=TreeDepth(root.left);
var right=TreeDepth(root.right);
return (left>right)?left+1:right+1;
}