leetcode Balanced Binary Tree 题解

来源:互联网 发布:linux 查看几个cpu 编辑:程序博客网 时间:2024/05/16 06:00

题目描述

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

代码实现

class Solution{public:    bool isBalanced(TreeNode *root)        {            return balancedHeight (root)>=0;        }        int balancedHeight (TreeNode* root)        {            if  (root==NULL)      return 0;            int left=balancedHeight (root->left);            int right=balancedHeight(root->right);            if(left<0 || right<0 ||abs(left - right)>1)   return -1;            return max(left,right)+1;        } };
0 0
原创粉丝点击