Leetcode: Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 TreeNode *sortedArrayToBST(vector<int> &num, int start, int end) 13 { 14 if (start > end) 15 return NULL; 16 int mid = start + (end - start)/2; 17 TreeNode* node = new TreeNode(num[mid]); 18 node -> left = sortedArrayToBST(num, start, mid-1); 19 node -> right = sortedArrayToBST(num, mid+1, end); 20 21 return node; 22 } 23 24 TreeNode *sortedArrayToBST(vector<int> &num) { 25 // Start typing your C/C++ solution below 26 // DO NOT write int main() function 27 int start = 0; 28 int end = num.size()-1; 29 return sortedArrayToBST(num, start, end); 30 } 31 };