zoukankan      html  css  js  c++  java
  • Balanced Binary Tree

    Description:

    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.

     

    Code:

     1    int height( TreeNode * root )
     2     {
     3         if ( root == NULL )
     4             return 0;
     5         else
     6             return max( height( root->left ), height( root->right) ) + 1;
     7     }
     8     
     9     bool isBalanced(TreeNode* root) {
    10        if ( root == NULL )
    11         return true;
    12         
    13         if ( abs(height(root->left)-height(root->right)) > 1 )
    14             return false;
    15         else
    16             return isBalanced( root->left ) && isBalanced( root->right );
    17     }

     Code2:

    class Solution {
    public:
        bool isBalance(TreeNode* pRoot, int&height){
            if (pRoot == NULL){
                 height = 0;
                return true;
            }
            bool isLeftBalance,isRightBalance;
            int leftH, rightH;
            isLeftBalance = isBalance(pRoot->left, leftH);
            isRightBalance = isBalance(pRoot->right, rightH);
            height = max(leftH, rightH)+1;
            if (isLeftBalance && isRightBalance && abs(leftH-rightH) <= 1)
                return true;
            return false;        
        }
        bool IsBalanced_Solution(TreeNode* pRoot) {
            int height;
            return isBalance(pRoot, height);
        }
    };
  • 相关阅读:
    mall
    将UNICODE编码转换为中文
    460. LFU Cache
    957. Prison Cells After N Days
    455. Assign Cookies
    453. Minimum Moves to Equal Array Elements
    434. Number of Segments in a String
    1203. Sort Items by Groups Respecting Dependencies
    641. Design Circular Deque
    441. Arranging Coins
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/4590617.html
Copyright © 2011-2022 走看看