LeetCode刷题-剑指55

@[TOC]剑指-55

1 题目

平衡二叉树

2 代码

/**
 * 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:
	// 判断是否是平衡二叉树,关键在于:
	// 1. root的左子树深度和右子树深度相差1
	// 2. 左、右子树同样是平衡二叉树 ***很关键***
    bool isBalanced(TreeNode* root) {
        return root == nullptr ? true : (abs(depth(root->left) - depth(root->right)) <= 1) && isBalanced(root->left) && isBalanced(root->right);
    }
    // 判断树的深度
    int depth(TreeNode* root)
    {
        return (root == nullptr) ? 0 : max(depth(root->left), depth(root->right)) + 1;
    }
};
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页