标签:
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; else return leftdepth + 1; } bool isBalanced(TreeNode *root) { MaxDepth(root); return FLAG; }
标签:
原文地址:http://blog.csdn.net/li_chihang/article/details/44226839