剑指Offer_39

题目

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

解题思路

二叉树的后序遍历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Solution {
private boolean isBalance = true;
private int depth(TreeNode node){
if(node == null){
return 0;
}
int left = depth(node.left);
int right = depth(node.right);
if(Math.abs(left - right) > 1){
isBalance = false;
}
//返回左右子树的父节点的深度
return left > right ? left + 1 : right + 1;
}
public boolean IsBalanced_Solution(TreeNode root) {
if(root == null){
return true;
}
depth(root);
return isBalance;
}
}