首页 > 代码库 > leetcode第一刷_Balanced Binary Tree
leetcode第一刷_Balanced Binary Tree
二叉平衡树好火啊,几乎每个公司的笔试题里都有它,考了好多次我都不会,挂笔试很有可能就是因为它,还有一个它的同伙叫二叉搜索树,貌似人气比它还要高一些。二叉平衡树是什么样的树呢,是每个节点的左右子树高度相差绝对值都不超过1。好,你说你终于回了,这不很简单吗,求一下根节点的左右字数高度,如果满足,他就是,否则就不是嘛。不是啊亲,要求是所有节点都满足这个条件,判断的时候必须每个节点都验证的!
扯了这么长,其实看看代码就明白了,怎么有种在贴吧发言要凑够15字的感觉。
int getHeight(TreeNode *root){ if(root == NULL) return 0; if(!root->left&&!root->right) return 1; return max(getHeight(root->left), getHeight(root->right))+1; } class Solution { public: bool isBalanced(TreeNode *root) { if(root == NULL) return true; if(!root->left && !root->right) return true; if(isBalanced(root->left)&&isBalanced(root->right)&&abs(getHeight(root->left)-getHeight(root->right))<=1) return true; return false; } };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。