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#include using namespace std;/** * 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) { if(root==NULL) return true; if(help_fun(root)<0) return false; return true; } int help_fun(TreeNode *node) { if(node==NULL) return 0; int lft = help_fun(node->left); int rgt = help_fun(node->right); if(lft==-1 ||rgt==-1) return -1; if(abs(lft-rgt)<2) return (lft>rgt?lft:rgt) +1; else return -1; }};int main(){ return 0;}