LEETCODE: Balanced Binary Tree

来源:互联网 发布:基金怎么玩 知乎 编辑:程序博客网 时间:2024/06/04 20:14

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.

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool isBalanced(TreeNode *root, int &depth) {        if(root == NULL) {            depth = 0;            return true;        }                int ld;        int rd;        bool isBal = isBalanced(root->left, ld) && isBalanced(root->right, rd);        depth = ld > rd ? ld + 1 : rd + 1;        return isBal && abs(ld - rd) <= 1;    }    bool isBalanced(TreeNode *root) {        int depth;        return isBalanced(root, depth);    }};





0 0
原创粉丝点击