-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBST1-Construct BST
32 lines (27 loc) · 1.13 KB
/
BST1-Construct BST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Given a sorted integer array A of size n, which contains all unique elements. You need to construct a balanced BST from this input array. Return the root of constructed BST.
Note: If array size is even, take first mid as root.
Input format:
The first line of input contains an integer, which denotes the value of n. The following line contains n space separated integers, that denote the values of array.
Output Format:
The first and only line of output contains values of BST nodes, printed in pre order traversal.
Constraints:
Time Limit: 1 second
Sample Input 1:
7
1 2 3 4 5 6 7
Sample Output 1:
4 2 1 3 6 5 7
******************************Solution***********************************
public static BinaryTreeNode<Integer> SortedArrayToBST(int[] arr, int n){
return sortedArrayHelper(arr,0,n-1);
}
public static BinaryTreeNode<Integer> sortedArrayHelper(int[] arr, int s,int e)
{
if (s>e)
return null;
int mid=(s+e)/2;
BinaryTreeNode<Integer> root = new BinaryTreeNode<Integer>(arr[mid]);
root.left=sortedArrayHelper(arr,s,mid-1);
root.right=sortedArrayHelper(arr,mid+1,e);
return root;
}