Balanced Binary Tree

来源:互联网 发布:2016无限申请淘宝小号 编辑:程序博客网 时间:2024/06/06 01:22

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.

#include<iostream>#include<vector>#include<algorithm>using namespace std;struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};bool FLAG = true;int MaxDepth(TreeNode* root ){if (root == NULL||FLAG==false)return 0;int leftdepth = MaxDepth(root->left);int rigtdepth = MaxDepth(root->right);if (abs(leftdepth - rigtdepth) > 1){FLAG = false;return -1;}else if (leftdepth < rigtdepth)return rigtdepth + 1;elsereturn leftdepth + 1;}bool isBalanced(TreeNode *root) {MaxDepth(root);return FLAG;}


 

0 0
原创粉丝点击