1. 程式人生 > >牛客網刷題之平衡二叉樹

牛客網刷題之平衡二叉樹

題目描述:

這裡寫圖片描述

解題思路:

  首先要知道平衡二叉樹的特點:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。那麼,如果數不為空的話,我們樂意分別遞迴求出左右子樹的高度,如果大於1就返回false,否則就返回true。

題解:

boolean isBalance = true;
    public boolean IsBalanced_Solution(TreeNode root) {
        getDeep(root);
        return isBalance;
    }

    public int getDeep
(TreeNode root) { if(root == null){ return 0; } int leftDeep = getDeep(root.left); int rightDeep = getDeep(root.right); if(Math.abs(leftDeep-rightDeep) > 1){ isBalance = false; } return Math.max(leftDeep, rightDeep) + 1
; }

ac結果:

這裡寫圖片描述