LeetCode-Easy刷題(24) Balanced Binary Tree

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1. 

給定一棵二叉樹,確定它是否是高度平衡的。
對於這個問題,一個高度平衡二叉樹定義爲一個二叉樹,其深度兩子樹節點不會相差超過1



//遞歸  深度優先  維護深度
    public boolean isBalanced(TreeNode root) {
        return isBalancedHelp(root) >=0;
    }

    public int isBalancedHelp(TreeNode root){
        if(root ==null){ //遞歸正常結束條件
            return 0;
        }
        int left = isBalancedHelp(root.left);//深度
        int right = isBalancedHelp(root.right);//同層 right
        if(left < 0 || right <0){ //不平衡提前結束條件
            return -1;
        }
        if(Math.abs(left - right)>1){//判斷是否不平衡
            return -1;
        }
        return Math.max(left, right)+1;//維護到當前節點最大深度
    }


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