diff options
Diffstat (limited to 'other/sorted_arrary_bst.cpp')
-rw-r--r-- | other/sorted_arrary_bst.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/other/sorted_arrary_bst.cpp b/other/sorted_arrary_bst.cpp new file mode 100644 index 0000000..e859528 --- /dev/null +++ b/other/sorted_arrary_bst.cpp @@ -0,0 +1,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; + } +}; |