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;
    
        }
    };
  • 相关阅读:
    EXISTS 的使用
    bind()和 unbind()绑定解绑事件的使用
    前端代码
    LIKE CONCAT 连用
    客服工作台
    杂录
    vue
    咋乱杂乱的一些总结
    kotlin 很杂很杂
    group by 和 order by 的区别 + 理解过程
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5165368.html
Copyright © 2011-2022 走看看