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.

    分析:判断一颗二叉树是否是平衡的,dfs递归求解,递归的过程中顺便求得树的高度                                       本文地址

     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         // IMPORTANT: Please reset any member data you declared, as
    14         // the same Solution instance will be reused for each test case.
    15         if(root == NULL)return true;
    16         if(height(root) == -1)return false;
    17         else return true;
    18     }
    19     //若root是平衡树,那么返回树的高度,否则返回-1
    20     int height(TreeNode *root)
    21     {
    22         if(root->left == NULL && root->right == NULL)return 1;
    23         int leftHeight = 0, rightHeight = 0;
    24         if(root->left)
    25             leftHeight = height(root->left);
    26         if(leftHeight == -1)return -1;
    27         if(root->right)
    28             rightHeight = height(root->right);
    29         if(rightHeight == -1)return -1;
    30         if(abs(leftHeight-rightHeight) > 1)return -1;
    31         return 1+max(leftHeight, rightHeight);
    32     }
    33 };

    【版权声明】转载请注明出处:http://www.cnblogs.com/TenosDoIt/p/3440069.html

  • 相关阅读:
    HDU 1016 Prime Ring Problem
    POJ 1724 ROADS(bfs最短路)
    HDU 1033 Edge
    IE 兼容模式
    HDU 1263 水果
    数据结构之图详解
    继续过中等难度.0309
    排序的稳定性
    Java+7入门经典
    哈希链表及其变种
  • 原文地址:https://www.cnblogs.com/TenosDoIt/p/3440069.html
Copyright © 2011-2022 走看看