【LeetCode】Convert Sorted Array to Binary Search Tree
来源:互联网 发布:java打包成jar包 cmd 编辑:程序博客网 时间:2024/06/06 02:55
题目描述:
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
将一个排序好的数组转化为平衡的搜索二叉树。
思路就是不断二分。l表示区间左端点index,r表示右端点,中间点为l+(r-l+1)/2,通过中间点划分出来的两个区间为下次递归的左右端点,分别为[l , (r+l-1)/2],[(r+l+3)/2, r],左右孩子分别为(r+3l+1)/4, (3r+l+5)/4。
代码如下:
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public:TreeNode *sortedArrayToBST(vector<int> &num) {if (num.empty())return NULL;TreeNode *node = new TreeNode(num[num.size() / 2]);changeToBST(num, node, 0, num.size() - 1);return node;}void changeToBST(vector<int> &num, TreeNode *node, int l, int r){if (l >= r)return;TreeNode *left(NULL), *right(NULL);if ((r + 3 * l + 1) / 4 >= l)left = new TreeNode(num[((r + 3 * l + 1) / 4)]);if ((3 * r + l + 5) / 4 <= r)right = new TreeNode(num[((3 * r + l + 5) / 4)]);node->left = left;node->right = right;changeToBST(num, node->left, l, (r + l - 1) / 2);changeToBST(num, node->right, (r + l + 3) / 2, r);}};
0 0
- 【LeetCode】Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- 【LeetCode】convert-sorted-link-to-binary-search-tree & convert-sorted-array-to-binary-search-tree
- Leetcode - Tree - Convert Sorted Array to Binary Search Tree
- *(leetcode) Convert Sorted Array to Binary Search Tree (tree)
- LeetCode[Tree]: Convert Sorted Array to Binary Search Tree
- LeetCode: Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- LeetCode Convert Sorted Array to Binary Search Tree
- [Leetcode] Convert Sorted Array to Binary Search Tree
- leetcode 11: Convert Sorted Array to Binary Search Tree
- 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
- LeetCode Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- [Leetcode]Convert Sorted Array to Binary Search Tree
- [leetcode]Convert Sorted Array to Binary Search Tree
- 努力与方向
- openfire 登陆 mysql转mongo性能测试及性能提升
- MYSQL入门学习之五:MYSQL的字符集
- UVa - 10025 - The ? 1 ? 2 ? ... ? n = k problem
- 安装ati开源驱动
- 【LeetCode】Convert Sorted Array to Binary Search Tree
- MYSQL入门学习之六:MYSQL的运算符
- mysql中优化sql语句查询的30种方法
- MYSQL入门学习之七:MYSQL常用函数
- MYSQL入门学习之八:数据库及表的基本操作
- MYSQL入门学习之九:索引的简单操作
- 第九周c++作业
- DirectX 学习经典参考书籍 电子书下载
- java数组、求最大值问题