Balanced Binary Tree

来源:互联网 发布:英文软件公司名称 编辑:程序博客网 时间:2024/06/04 20:25

题目来源LeetCode
题目描述

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.

这道题就是基础的判断平衡二叉树,就利用定义求左右深度再比较,代码如下:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ int depth(TreeNode*root){     if(root == NULL) return 0;     int lp = depth(root->left);     int rp = depth(root->right);     if(lp > rp) return lp+1;     else return rp+1; }class Solution {public:    bool isBalanced(TreeNode* root) {       if(root == NULL) return true;       int lp = depth(root->left);       int rp = depth(root->right);       if(lp-rp > 1 || lp-rp < -1) return false;       return isBalanced(root->left) && isBalanced(root->right);    }};
原创粉丝点击