剑指Offer-39. 平衡二叉树
程序员文章站
2022-03-05 13:29:54
...
题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路
[方法一] 递归
import java.util.*;
public class Solution {
// 递归
public boolean IsBalanced_Solution(TreeNode root) {
if (root == null) return true;
return Math.abs(TreeDepth(root.left) - TreeDepth(root.right)) > 1 ? false : true;
}
public int treeDepth(TreeNode root) {
if (root == null) return 0;
int left = TreeDepth(root.left);
int right = TreeDepth(root.right);
return Math.max(left, right) + 1;
}
}
[方法二] 只需要遍历一次
import java.util.*;
public class Solution {
private boolean isBalanced = true;
public boolean IsBalanced_Solution(TreeNode root) {
treeDepth(root);
return isBalanced;
}
public int treeDepth(TreeNode root) {
if (root == null) {
return 0;
}
int left = treeDepth(root.left);
int right = treeDepth(root.right);
if (Math.abs(left - right) > 1) {
isBalanced = false;
}
return left > right ? left + 1 : right + 1;
}
}
上一篇: a song flash
推荐阅读
-
《剑指offer》面试题6 重建二叉树
-
[算法练习-剑指offer]题18.二叉树的镜像(Java)
-
剑指offer37.序列化和反序列化二叉树(详解)
-
力扣OJ 剑指 Offer 68 - II. 236. 二叉树的最近公共祖先
-
《剑指offer》面试题6 重建二叉树
-
剑指 Offer 07. 重建二叉树——【前中序】和【中后序】重建二叉树的递归思路详解
-
剑指 Offer 55 - I. 二叉树的深度——DFS+BFS解题
-
leetcode 面试题32 (剑指offer)- II. 从上到下打印二叉树 II(python3)
-
leetcode 113 剑指offer 面试题34. 二叉树中和为某一值的路径(python3)
-
剑指offer——二叉树的镜像