Convert Sorted Array to Binary Search Tree——Difficulty:Medium
来源:互联网 发布:python genetic 编辑:程序博客网 时间:2024/04/30 19:56
Problem :
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
Example:
**
Algorithm:
**
根据二叉平衡搜索树的特点,因为这个数组是有序的,所以可以把数组分成两半,左边一半世左子树,右边一半是右子树,中间的是根节点,然后对每一半的数组开始递归,最后只剩下一个数时开始回溯,可以确保是一个二叉平衡树,因为一直是对半分,所以左边和右边的高度差不会大于1
时间复杂度时n/2+n/4+……+1=O(n)
**
Code:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* BST(vector<int>& nums,int begin,int end) { if(begin<=end) { TreeNode* root=new TreeNode(nums[(begin+end)/2]); root->left=BST(nums,begin,(begin+end)/2-1); root->right=BST(nums,(begin+end)/2+1,end); return root; } else return NULL; } TreeNode* sortedArrayToBST(vector<int>& nums) { return BST(nums,0,nums.size()-1); }};
0 0
- Convert Sorted Array to Binary Search Tree——Difficulty:Medium
- 108. Convert Sorted Array to Binary Search Tree #Medium
- LeetCode #108 - Convert Sorted Array to Binary Search Tree -Medium
- LeetCode——Convert Sorted Array to Binary Search Tree
- Leetcode108——Convert Sorted Array to Binary Search Tree
- Algorithms—108.Convert Sorted Array to Binary Search Tree
- LeetCode108—Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- MD5加密
- 简单的imageloader
- SQL语言总结
- pojo的排序问题疑问
- 学习计划-16.09.21
- Convert Sorted Array to Binary Search Tree——Difficulty:Medium
- [整理]-iOS- 原生二维码的扫描实现
- HDU 5898 基础数位DP
- 数据库入门之增删改查
- CentOS 6.3(x86_64)下安装Oracle 10g R2
- 内存不足引起的SIGKILL:一个缓冲区不断增长问题的定位与解决(解释SIGKILL原因)
- Mysql Join语法解析与性能分析
- java工作摘记-本地项目测试流程
- React Native 生命周期