leetcode 之 Balanced Binary Tree
来源:互联网 发布:防沉迷解除软件2016 编辑:程序博客网 时间:2024/05/23 12:59
问题:
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。需要用到两个递归。 检查非叶子节点的顺序可以用DFS,利用DFS可以知道树的高度。
/** * 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 height(TreeNode *node) { if(node == NULL) return 0; //leaf if(node->left == NULL && node->right == NULL) return 1; //non-leaf return max(height(node->left), height(node->right)) + 1; } bool isBalanced(TreeNode *root) { if(root == NULL) return true; int depth = abs(height(root->left) - height(root->right)); if(depth < 2) return (isBalanced(root->left) && isBalanced(root->right)); else return false; }};
0 0
- LeetCode 之 Balanced Binary Tree
- LeetCode之Balanced Binary Tree
- leetcode之Balanced Binary Tree
- leetcode 之 Balanced Binary Tree
- LeetCode之Balanced Binary Tree
- leetcode之Balanced Binary Tree
- leetcode之Balanced Binary Tree
- leetcode之Balanced Binary Tree
- LeetCode 之 Balanced Binary Tree
- LeetCode: Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- LeetCode Balanced Binary Tree
- [Leetcode] Balanced Binary Tree
- LeetCode : Balanced Binary Tree
- LeetCode Balanced Binary Tree
- [LeetCode] Balanced Binary Tree
- 【leetcode】Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- MVC模式的升级MOVE
- Memcached的分布式算法-Consistent Hashing
- 第13周项目5--合并字符串
- 求两个有序数组的中位数
- 学习Unity3D第一天之基础入门。
- leetcode 之 Balanced Binary Tree
- 学习Unity3D第三天,简单小游戏《王子救公主》的页面搭建制作。
- OrCAD Capture CIS打不开的解决方法
- Java中复杂的I/O流
- 使用SSH解决插入数据库中中文乱码问题
- Android应用程序注册广播接收器(registerReceiver)的过程分析
- 学习Unity3D第四天之脚本入门(数据类型和基本运算)。
- 在有序数组中插入数据
- 浅谈渗透测试中的攻守之道