zoukankan      html  css  js  c++  java
  • Leetcode[110]-Balanced Binary Tree

    Link: https://leetcode.com/problems/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.


    推断一棵树是否属于平衡二叉树

    推断主节点的左右节点深度大小差,假设不在【-1,1】内。返回false。否则。继续推断其左右节点是否属于平衡二叉树;

    仅仅要有不满足的。就返回false

    Code(C++):

    /**
     * Definition for a binary tree node.
     * 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;
    
            int ldepth = getDepth(root->left);
            int rdepth = getDepth(root->right);
    
            if(ldepth - rdepth > 1 || ldepth - rdepth < -1) return false;
    
            return isBalanced(root->left) && isBalanced(root->right);
        }
    
        //get node's depth
        int getDepth(TreeNode *root){
            if(root==NULL) return 0;
    
            int ldepth=0,rdepth=0;
            ldepth = getDepth(root->left);
            rdepth = getDepth(root->right);
    
            return ldepth > rdepth ? ldepth+1:rdepth+1;
    
        }
    };
  • 相关阅读:
    深入理解C++ 11新特性:1)
    Effective Java 第三版:1)
    Java 8 实战:2)
    MyBatis Plus
    Java 8 实战:1)
    十二要素应用宣言
    Dubbo 2):源码级
    [SCOI2009]windy数 数位dp
    [ZJOI2006]物流运输 最短路 动态规划
    [ZJOI2008]骑士
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5165368.html
Copyright © 2011-2022 走看看