TreeNode* generateBST(vector<int> & nums, int start, int end) {
     if (start > end)
         return NULL;
     int mid = (start + end)/2;
     TreeNode *p = new TreeNode(nums[mid]);
     
     p->left = generateBST(nums, start, mid - 1);
     p->right = generateBST(nums, mid + 1, end);
  
     return p; 
 }
BST* generateTestBST(char* words[10]) {
    return generateBST(15, words);
}
 TreeNode* sortedArrayToBST(vector<int>& nums) {
     if (nums.size() == 0)
         return NULL;
     return generateBST(nums, 0, nums.size()-1);
 }