aboutsummaryrefslogtreecommitdiff
path: root/other/sorted_arrary_bst.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/sorted_arrary_bst.cpp')
-rw-r--r--other/sorted_arrary_bst.cpp21
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;
+ }
+};