您的位置:首页 > 编程语言 > Java开发

二叉树平衡检查(Java)

2015-08-25 12:29 676 查看


题目描述

实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。

给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。

package com.msjd.tree;

public class Balance {
public boolean isBalance(TreeNode root) {
// write code here
if(root == null)return true; // 递归基
int diff = getHight(root.left) - getHight(root.right);
if(Math.abs(diff) > 1)return false;
else return isBalance(root.left) && isBalance(root.right);
}

public int getHight(TreeNode root) {
// write code here
if(root == null)return 0;
return Math.max(getHight(root.left),
getHight(root.right)) + 1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: