LeetCode解题报告 108. Convert Sorted Array to Binary Search Tree [medium]
来源:互联网 发布:出库单软件 编辑:程序博客网 时间:2024/06/06 06:35
题目描述
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
解题思路
题目要求对一个已经排好序的数组来构造一颗平衡二叉树。
平衡二叉树指的是对于树上任意一个节点,其左右子树的高度差不超过1。
若两颗子树节点数量相同,且使用同样的方法来进行构造。那么它们的形态应该是相同的,层数也相同。举个例子:
1 / \ X Y / \ / \ X X Y Y
若两颗子树节点数量相差1,则构造出的子树层数至多相差1。举个例子:
1 / \ X Y / \ / X X Z
只需要保证每一次递归处理构造的左右子树节点数量最多不超过1,就可以保证生成的二叉树满足高度平衡的性质。因此,每一次以中位数进行分割,将数组分割为左右两个部分,对左右两个子树执行相同的操作,不断从中点划分,来递归构造二叉树。
复杂度分析
时间复杂度为O(n),空间复杂度为O(n)。
代码如下:
class Solution {public: TreeNode* sortedArrayToBST(vector<int>& nums) { if (nums.size()==0) { return NULL; } int medium=nums.size()/2; vector<int>leftlist(nums.begin(),nums.begin()+medium); vector<int>righlist(nums.begin()+medium+1,nums.end()); TreeNode* result=new TreeNode(nums[medium]); result->left=sortedArrayToBST(leftlist); result->right=sortedArrayToBST(righlist); return result; }};
参考:
https://www.tianmaying.com/tutorial/LC108
0 0
- LeetCode解题报告 108. Convert Sorted Array to Binary Search Tree [medium]
- [LeetCode]Convert Sorted Array to Binary Search Tree, 解题报告
- 【LeetCode】Convert Sorted Array to Binary Search Tree 解题报告
- [leetcode] 108. Convert Sorted Array to Binary Search Tree 解题报告
- Leetcode 108. Convert Sorted Array to Binary Search Tree 有序数组转化BST 解题报告
- LeetCode 108. Convert Sorted Array to Binary Search Tree 解题报告
- [Leetcode] 108. Convert Sorted Array to Binary Search Tree 解题报告
- [leetcode]108. Convert Sorted Array to Binary Search Tree@Java解题报告
- LeetCode #108 - Convert Sorted Array to Binary Search Tree -Medium
- 108. Convert Sorted Array to Binary Search Tree #Medium
- LeetCode Convert Sorted List to Binary Search Tree 解题报告
- 【LeetCode】Convert Sorted List to Binary Search Tree 解题报告
- LeetCode(108) Convert Sorted Array to Binary Search Tree解题报告
- Leetcode 108. Convert Sorted Array to Binary Search Tree (Medium) (cpp)
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- [LeetCode]108.Convert Sorted Array to Binary Search Tree
- 108. Convert Sorted Array to Binary Search Tree Leetcode Python
- [Leetcode] 108. Convert Sorted Array to Binary Search Tree
- 最短的蛇形填数算法 5个分号 10行!
- chrome浏览器 adobe flash player过期问题
- 编译原理(笔记)
- 原生js实现全屏展示效果
- 使用 MEAN 进行全栈开发基础篇——4、接着前面玩儿添加
- LeetCode解题报告 108. Convert Sorted Array to Binary Search Tree [medium]
- 敏捷大会――会后反思
- dlopen与dlsym
- java环境配置
- 51单片机的堆栈
- java线程深度解析(三)——并发模型(Future)
- java线程深度解析(四)——并发模型(Master-Worker)
- centos 下面升级python
- [LeetCode]463. Island Perimete