leetcode 110. 平衡二叉树

70 阅读1分钟

c++

class Solution {
public:
    int getHeight(TreeNode *root) {
        if (!root) return 0;
        int l = getHeight(root->left);
        int r = getHeight(root->right);
        if (l < 0 || r < 0) return -1;
        if (abs(l - r) > 1) return -1;
        return max(l, r) + 1;
    }
    bool isBalanced(TreeNode* root) {
        return getHeight(root) >= 0;
    }
};

js

var getHeight = function(root) {
    if (!root) return 0;
    var l = getHeight(root.left);
    var r = getHeight(root.right);
    if (l < 0 || r < 0) return -1;
    if (Math.abs(l - r) > 1) return -1;
    return Math.max(l, r) + 1; 
}
var isBalanced = function(root) {
    return getHeight(root) >= 0;
};