Skip to content

Commit 8ef33d9

Browse files
Add files via upload
1 parent 30015fe commit 8ef33d9

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// 12ms 66.86%
2+
3+
/**
4+
* Definition for a binary tree node.
5+
* struct TreeNode {
6+
* int val;
7+
* TreeNode *left;
8+
* TreeNode *right;
9+
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
10+
* };
11+
*/
12+
13+
#include<vector>
14+
using namespace std;
15+
16+
class Solution {
17+
public:
18+
TreeNode* sortedArrayToBST(vector<int>& nums)
19+
{
20+
return helper(0, nums.size() - 1, nums);
21+
}
22+
23+
TreeNode* helper(int left, int right, vector<int>& nums)
24+
{
25+
if (left > right)
26+
return 0;
27+
else
28+
{
29+
int mid = (left + right) / 2;
30+
31+
TreeNode *root = new TreeNode(nums[mid]);
32+
root->left = helper(left, mid - 1, nums);
33+
root->right = helper(mid + 1, right, nums);
34+
35+
return root;
36+
}
37+
}
38+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# 116ms 19.37%
2+
3+
# Definition for a binary tree node.
4+
# class TreeNode:
5+
# def __init__(self, x):
6+
# self.val = x
7+
# self.left = None
8+
# self.right = None
9+
10+
class Solution:
11+
def sortedArrayToBST(self, nums):
12+
"""
13+
:type nums: List[int]
14+
:rtype: TreeNode
15+
"""
16+
def helper(left, right):
17+
if left > right:
18+
return None
19+
else:
20+
mid = (left + right) // 2
21+
22+
root = TreeNode(nums[mid])
23+
root.left = helper(left, mid - 1)
24+
root.right = helper(mid + 1, right)
25+
26+
return root
27+
28+
return helper(0, len(nums) - 1)
29+
30+
31+

0 commit comments

Comments
 (0)