您的位置:首页 > 其它

[LeetCode] Balanced Binary Tree Solution

2016-01-12 11:09 330 查看
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[/i]node never differ by more than 1.
» Solve this problem

[Thoughts]
recursion. For each node, check the left branch and right branch.

[code]1:    bool isBalanced(TreeNode *root) {
2:      // Start typing your C/C++ solution below
3:      // DO NOT write int main() function
4:      if(root == NULL) return true;
5:      int val = GetBalance(root);
6:      if(val ==-1) return false;
7:      return true;
8:    }
9:    int GetBalance(TreeNode* node)
10:    {
11:      if(node == NULL)
12:        return 0;
13:      int left = GetBalance(node->left);
14:      if(left == -1) return -1;
15:      int right = GetBalance(node->right);
16:      if(right == -1) return -1;
17:      if(left-right>1 || right-left>1)
18:        return -1;
19:      return left>right? left+1:right+1;
20:    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: