leetcode_110 Balanced Binary Tree
来源:互联网 发布:2014年网络流行歌曲 编辑:程序博客网 时间:2024/05/16 11:42
题目分析:
- 给定一棵二叉树,判断此二叉树是否为平衡二叉树。
解题思路:
平衡二叉树
平衡二叉树(AVL Tree)是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
递归实现
实现平衡二叉树,关键在于求取树的高度和判断树中左右两个子树的高度差是否满足绝对值不超过1。故实现过程主要如下:
1)递归求二叉树的高度;
2)递归判断二叉树是否满足平衡二叉树。
实现程序
//递归求取二叉树的高度int height(struct TreeNode *root){ if (root == NULL) return 0; else { if (root->left == NULL) return height(root->right) + 1; else if (root->right == NULL) return height(root->left) + 1; else { int l = height(root->left); int r = height(root->right); return l < r ? (r + 1) : (l + 1); } }}//递归判断二叉树是否是平衡二叉树bool isBalanced(struct TreeNode *tree){ if (tree == NULL) return true; else { int l = height(tree->left); int r = height(tree->right); if (l - r >= -1 && l - r <= 1) return isBalanced(tree->left) && isBalanced(tree->right); else return false; }}
0 0
- leetcode_110 Balanced Binary Tree
- leetcode_110. Balanced Binary Tree
- LeetCode_110.Balanced Binary Tree_平衡二叉树
- leetcode_110. Balanced Binary Tree 判断一棵二叉树是否为平衡二叉树
- 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
- Balanced Binary Tree
- Balanced Binary Tree
- 【leetcode】Balanced Binary Tree
- Balanced Binary Tree
- [LeetCode]Balanced Binary Tree
- Balanced Binary Tree
- ArrayList底层实现
- AJAX+JAVA实现登录的实时验证
- mysql必知必会--第一回 检索单个表列 多个表列
- plsql 返回结果集的存储过程
- 百思不得姐之广告界面(三)
- leetcode_110 Balanced Binary Tree
- Java native关键字
- Android学习----四大基本组件之一Activity(1)
- 本博客停止更新
- String,String Buffer,数组,对象和类的简单总结
- caffe源码解析的三个博客分享
- 完全免费!Xamarin应用商店最受欢迎的10款用户界面工具
- kafka的部署及错误排除
- SparkStreaming笔记