劍指offer---平衡二叉樹(Java)

題目描述

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
在這裏插入圖片描述

解析思路

上一篇劍指的題目是求二叉樹深度,而這一題就是求左右子樹的高度差絕對值是否大於1。
所以我們在上一篇的基礎上加入了一個Math.abs()後判斷是否大於1就ok了。
Math.abs()是返回數的絕對值。

運行代碼

public class Solution {
    
    private boolean isBalanced = true;
    
    public boolean IsBalanced_Solution(TreeNode root) {
        TreeDepth(root);
        return isBalanced;
    }
    
    private 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;
        }
        int max = Math.max(left,right)+1;
        return max;
    }
}

運行截圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章