一、题目
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
二、思路
详解代码。
三、代码
public class Solution {
//判断根节点左右子树的深度,高度差超过1,则不平衡
public boolean IsBalanced_Solution(TreeNode root) {
if (root==null) {
return true;
}
int left = getTreeDepth(root.left);
int right = getTreeDepth(root.right);
return Math.abs(left-right)>1?false:true;
}
//求取节点的深度
public static int getTreeDepth(TreeNode root) {
if (root==null) {
return 0;
}
int leftDepth = 1+getTreeDepth(root.left);
int rightDepth = 1+getTreeDepth(root.right);
return leftDepth>rightDepth?leftDepth:rightDepth;
}
}
-----------------------------------
参考链接:
https://www.nowcoder.com/questionTerminal/8b3b95850edb4115918ecebdf1b4d222