首页 > 代码库 > LeetCode Balanced Binary Tree

LeetCode Balanced Binary Tree

/** * 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 h;        return dfs(root, h);    }        bool dfs(TreeNode* root, int& height) {        height = 0;        if (root == NULL) {            return true;        }        int lh, rh;        if (!dfs(root->left, lh)) return false;        if (!dfs(root->right, rh)) return false;        lh++, rh++;        int diff = lh - rh;        if (diff < -1 || diff > 1) return false;        if (diff < 0) {            height =  rh;        } else {            height =  lh;        }        return true;    }};