zoukankan      html  css  js  c++  java
  • 【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.


    题解:一A的题,写一个递归函数height计算树的高度,然后递归实现isBalance函数即可。代码如下:

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     bool isBalanced(TreeNode *root) {
    13         if(root == NULL)
    14             return true;
    15         if(abs(height(root->left)-height(root->right)) > 1)
    16             return false;
    17         return isBalanced(root->left) && isBalanced(root->right);
    18     }
    19     int height(TreeNode *root){
    20         if(root == NULL)
    21             return 0;
    22         int left = height(root->left);
    23         int right = height(root->right);
    24         return 1+(left>right?left:right);
    25     }
    26 };
  • 相关阅读:
    2021年2月13
    2021年2月12
    2021年2月11
    2021年2月10
    2021年2月9
    下载优化
    20180301越努力越轻松
    2018-03-01继续完善2
    2018-03-01继续完善
    2018-02-16 GetSameTypeQuestion
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3778668.html
Copyright © 2011-2022 走看看