leetcode110 平衡二叉树

一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。

  • 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。
  • 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。

递归:

class Solution {
private:
    int getheight(TreeNode* root){
        if(root == nullptr) return 0;
        int leftheight = getheight(root->left);
        if(leftheight == -1) return -1;
        int rightheight = getheight(root->right);
        if(rightheight == -1) return -1;
        return (leftheight - rightheight) > 1 ? -1 : max(leftheight, rightheight) + 1;
    }
public:
    bool isBalanced(TreeNode* root) {
        return getheight(root) == -1 ? false : true;
    }
};

你可能感兴趣的:(数据结构,java,算法)