1 parent f926e64 commit bdea88eCopy full SHA for bdea88e
1 file changed
ConvertSortedArraytoBinarySearchTree/ConvertSortedArraytoBinarySearchTree.cpp
@@ -0,0 +1,36 @@
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) {
13
+ // Start typing your C/C++ solution below
14
+ // DO NOT write int main() function
15
+ if (num.empty()) return NULL;
16
+ TreeNode *root = new TreeNode(0);
17
+ dfs(root, 0, num.size() - 1, num);
18
+ return root;
19
+
20
+ }
21
+ void dfs(TreeNode *root, int left, int right, vector<int>& num) {
22
+ if (left == right) {
23
+ root->val = num[left];
24
+ root->left = root->right = NULL;
25
+ return;
26
27
+ int mid = (left + right) / 2;
28
+ root->val = num[mid];
29
+ root->right = new TreeNode(0);
30
+ dfs(root->right, mid + 1, right, num);
31
+ if (mid != left) {
32
+ root->left = new TreeNode(0);
33
+ dfs(root->left, left, mid - 1, num);
34
35
36
+};
0 commit comments