zoukankan      html  css  js  c++  java
  • 【LeetCode】110. 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,解题的思想是使用DFS。

    代码:

    /**
     * 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) {
            return dfs(root) != -1;
        }
        int dfs(TreeNode* root) {
            if (root == NULL) return 0;
            int left = dfs(root->left);
            if (left == -1) return -1;
            int right = dfs(root->right);
            if (right == -1) return -1;
            
            if (abs(left - right) > 1) return -1;
            return max(left, right) + 1;
        }
    };
  • 相关阅读:
    联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
    P5518
    快速除法 / 取模
    P6860
    spoj LCMSUM
    虚树 学习笔记
    长链剖分 学习笔记
    CF526G
    P4292
    01 分数规划(water)
  • 原文地址:https://www.cnblogs.com/jdneo/p/4791650.html
Copyright © 2011-2022 走看看