[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.

 

Hide Tags
  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;

}

 

你可能感兴趣的:(LeetCode)