110. 平衡二叉树

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了110. 平衡二叉树相关的知识,希望对你有一定的参考价值。

110. 平衡二叉树

 


题目

传送门:https://leetcode.cn/problems/balanced-binary-tree/

 


算法设计:深度优先搜索

要比较左右子树的高度,就不能通过前序位置一棵二叉树沿途得出,而是通过后序位置,遍历完整棵树,对比俩者高度差。

class Solution 
public:
    bool ans = true;
    int solve(TreeNode* root) 
        if(root == NULL) return 0;
        int left = solve(root->left);
        int right = solve(root->right);
        if(abs(left-right)>1)        // 【后序位置做比较】如果左右最大深度大于 1,就不是平衡二叉树
            ans = false;
        return max(left, right)+1;   // 树的高度 = 最大的左右子树 + 1
    
    
    bool isBalanced(TreeNode* root) 
        solve(root);
        return ans;
    
;

以上是关于110. 平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(算法)- 110. 平衡二叉树

LeetCode110. Balanced Binary Tree-判断是否为平衡二叉树

110. 平衡二叉树

110. 平衡二叉树

Leetcode:110. 平衡二叉树

每天一道leetcode-110平衡二叉树