首页 > 代码库 > LeetCode: Balanced Binary Tree [110]
LeetCode: Balanced Binary Tree [110]
【题目】
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 binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int getHeight(TreeNode *root){ if(root==NULL)return 0; //获得左子树高度 int leftHeight=getHeight(root->left); if(leftHeight==-1)return -1; //获得右子树高度 int rightHeight=getHeight(root->right); if(rightHeight==-1)return -1; //判断左右子树高度差是否符合要求, 如果符合要求,则返回当前二叉树的高,如果不符合要求,则返回-1 if(abs(leftHeight-rightHeight)<=1) return max(leftHeight, rightHeight)+1; return -1; } bool isBalanced(TreeNode *root) { if(root==NULL)return true; int height=getHeight(root); if(height==-1)return false; return true; } };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。