剑指offer 55:平衡二叉树

在这里插入图片描述
思路
核心思想就是在dfs的过程中维护一个全局变量来判断是否为平衡二叉树

class Solution {
    
    
private:
    bool balanced = true;
    int dfs(TreeNode* root) {
    
    
        if (root == nullptr) return 0;
        int left = dfs(root->left);
        int right = dfs(root->right);
        if (abs(right - left) > 1) balanced = false;
        return 1 + max(left, right);
    }
public:
    bool isBalanced(TreeNode* root) {
    
    
        if (root == nullptr) return true;
        dfs(root);
        return balanced;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_44537258/article/details/114088139
今日推荐