https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/
1. Use BST:
//24 ms 23.5 MB/*** 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* sortedArrayToBST(vector<int>& nums) {//input is already sortedint l = 0, r = nums.size() - 1;TreeNode* root = build(nums, l, r);return root;}private:TreeNode* build(vector<int>& nums, int l, int r) {if(l > r) return NULL;int median = l + (r - l) / 2;TreeNode* root = new TreeNode(nums[median]);root->left = build(nums, l, median - 1);root->right = build(nums, median + 1, r);return root;}};
