首页 > 代码库 > [Leetcode][Tree][Balanced Binary Tree]
[Leetcode][Tree][Balanced Binary Tree]
判断一棵树是不是平衡二叉树,之前做过,还有点印象,用一个函数返回树的高度,如果是-1的话,就说明子树不平衡。
1A很开心~
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */10 class Solution {11 public:12 int height(TreeNode * root) {13 int hleft, hright;14 hleft = hright = 0;15 if (root->left != NULL) {16 hleft = height(root->left);17 }18 if (root->right != NULL) {19 hright = height(root->right);20 }21 if (hleft < 0 || hright < 0 || abs(hleft - hright) > 1) {22 return -1;23 }24 return max(hleft, hright) + 1;25 }26 bool isBalanced(TreeNode *root) {27 if (root == NULL) {28 return true;29 } else {30 return height(root) >= 0;31 }32 }33 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。