【左神算法】判斷一棵二叉樹是否是平衡二叉樹

題目

判斷一棵二叉樹是否是平衡二叉樹

思路

平衡二叉樹的特點是左右子樹的高度差不超過1 只需要遞歸查找左右子樹的高度進行比較,這裏再次簡述一下遞歸的三個要點。
1.終止條件 2.邏輯處理 3.drll down
不要進行人肉遞歸,只需要考慮root節點的左右子樹的高度 將問題簡單話,尋找重複子問題。

code

	private boolean flag = true;//是否平衡
    public boolean IsBalanced_Solution(TreeNode root) {
        if(root == null) return flag;
        dfs(root);
        return flag;
    }
    
    private int dfs(TreeNode root){
        //1.終止條件
        if(root == null || !flag ){
            return 0;
        }
        int left = dfs(root.left);
        int right = dfs(root.right);
        flag = Math.abs(left-right) > 1 ? false : true;
        return 1+Math.max(left,right);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章