Given n, how many structurally unique BST’s (binary search trees) that store values 1…n?
For example,
Given n = 3, there are a total of 5 unique BST’s.
int numTrees(int n) {
if(n==0)
return 1;
if(n==1)
return 1;
if(n%2==0){
int temp=0;
for(int i=0;i<n/2;i++){
temp=2*(numTrees(i)*numTrees(n-1-i))+temp;
}
return temp;
}
if(n%2==1){
int temp=0;
for(int i=0;i<(n-1)/2;i++){
temp=2*(numTrees(i)*numTrees(n-1-i))+temp;
}
temp=temp+numTrees((n-1)/2)*numTrees((n-1)/2);
return temp;
}
}