110. Balanced Binary Tree [leetcode]

来源:互联网 发布:Android悬浮窗源码 编辑:程序博客网 时间:2024/05/16 08:41

用递归来解题。

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


原创粉丝点击