[leetcode]44 Balanced Binary Tree
2015-04-02 14:05
369 查看
题目链接:https://leetcode.com/problems/balanced-binary-tree/
Runtimes:21ms
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.
Runtimes:21ms
1、问题
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.
2、分析
首先要理解什么是平衡二叉树,即所有节点的左右子树的高度相差小于2,就是平衡的。本来想用非递归的,不过写出来好麻烦,最终还是用了递归,没想到跑过了,哈哈。3、小结
其实只要递归中操作不多,就不会time out,get新技能。只要检查出不是平衡二叉树,直接就返回了,速度好快!4、实现
/** * 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 isBalanced(TreeNode *root, bool &f) { if(!f) return -1; if(root == NULL) return -1; int leftH, rightH; leftH = isBalanced(root->left, f) + 1; rightH = isBalanced(root->right, f) + 1; if(abs(leftH - rightH) > 1) f = false; return leftH < rightH ? rightH : leftH; } bool isBalanced(TreeNode *root) { bool f = true; isBalanced(root, f); if(f) return true; else return false; } };
5、反思
简单题目,效果不错。相关文章推荐
- 【Leetcode】【Easy】Balanced Binary Tree
- leetcode 第110题 Balanced Binary Tree
- Leetcode 之Binary Tree Postorder Traversal(44)
- Leetcode 110 Balanced Binary Tree
- [LeetCode 110] - 平衡二叉树 (Balanced Binary Tree)
- Leetcode Balanced Binary Tree
- leetCode(20):Balanced binary tree
- Leetcode:balanced_binary_tree
- LeetCode Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- Leetcode 110 Balanced Binary Tree
- LeetCode110:Balanced Binary Tree
- LeetCode: Balanced Binary Tree 解题报告
- [LeetCode] Balanced Binary Tree 平衡二叉树
- LeetCode:Balanced Binary Tree
- leetcode - Balanced Binary Tree
- leetcode -- 110. Balanced Binary Tree 【二叉树是否平衡】
- leetcode--110. Balanced Binary Tree
- LeetCode Balanced Binary Tree
- Balanced Binary Tree - Leetcode