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

在leetcode刷題寫了一版比較簡潔的代碼,分享給大家:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isBalanced(TreeNode root) {
        if(root == null) return true;
        if(Math.abs(Depth(root.left) - Depth(root.right)) <= 1)
            return true && isBalanced(root.left) && isBalanced(root.right);
        return false;
    }

    public int Depth(TreeNode treenode){
        if(treenode == null) return 0;
        return 1 + Math.max(Depth(treenode.left), Depth(treenode.right));
    }
}

另外,空樹是特殊的平衡二叉樹,因此空樹返回true。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容