aboutsummaryrefslogtreecommitdiff
path: root/sorted_arrary_bst.cpp
blob: e859528d609a239caae075b53f9733c8a0efd166 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "leetcode.h"

class Solution {
public:
  TreeNode *sortedArrayToBST(vector<int> &nums) {
    int start = 0, end = nums.size() - 1;
    TreeNode *root = helper(start, end, nums);
    return root;
  }

private:
  TreeNode *helper(int start, int end, vector<int> &nums) {
    if (start > end)
      return NULL;
    int mid = start + (end - start) / 2;
    TreeNode *node = new TreeNode(nums[mid]);
    node->left = helper(start, mid - 1, nums);
    node->right = helper(mid + 1, end, nums);
    return node;
  }
};