[LeetCode] Balanced Binary Tree 深度搜索
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.
Tree Depth-first Search
一个深度搜索的问题。
#include <iostream> #include <stdlib.h> 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; }