本题为剑指offer面试题39——题目2
牛客网测试地址:https://www.nowcoder.com/questionTerminal/8b3b95850edb4115918ecebdf1b4d222
[编程题]平衡二叉树
- 热度指数:41318时间限制:1秒空间限制:32768K
输入一棵二叉树,判断该二叉树是否是平衡二叉树
package go.jacob.day513;
public class Demo2 {
// 设置一个成员变量
private boolean isBalanced;
public boolean IsBalanced_Solution(TreeNode root) {
isBalanced = true;
// 如果树为空,返回true
if (root == null)
return isBalanced;
solve(root);
return isBalanced;
}
private int solve(TreeNode root) {
if (root == null)
return 0;
int leftNum = solve(root.left);
int rightNum = solve(root.right);
if (Math.abs(leftNum - rightNum) > 1)
isBalanced = false;
return leftNum > rightNum ? leftNum + 1 : rightNum + 1;
}
/*
* 二叉树节点类
*/
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
}