zoukankan      html  css  js  c++  java
  • 110.Balanced Binary Tree(Easy)

    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.

    递归,求左右是否平衡,再判断高度差

    /**
     * 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 checkBalance(TreeNode *node, int &dep)
         {
             if (node == NULL)
           {
                dep = 0;
                 return true;
             }
             
             int leftDep, rightDep;
             bool leftBalance = checkBalance(node->left, leftDep);
             bool rightBalance = checkBalance(node->right, rightDep);
             
             dep = max(leftDep, rightDep)+1;
             
             return leftBalance && rightBalance && (abs(rightDep - leftDep) <= 1);
         }
        bool isBalanced(TreeNode *root) {
             int dep;
             return checkBalance(root, dep);
            
        }
    };

      

  • 相关阅读:
    判断是否为蜘蛛抓取
    js Date
    JavaScript_Date对象说明
    php过滤字符串函数
    js 高考倒计时
    php 修改数据编码
    php 二维数组冒泡排序
    PSD网页切图制作HTML全过程教程
    产品经理职责
    互联网产品设计
  • 原文地址:https://www.cnblogs.com/qiaozhoulin/p/4509899.html
Copyright © 2011-2022 走看看