题目描述
给定一个值n,能构建出多少不同的值包含1...n的二叉搜索树(BST)?
例如
给定 n = 3, 有五种不同的二叉搜索树(BST)
class Solution {
public:
int numTrees(int n)
{
if(n == 0 || n == 1)
return 1;
int ans = 0;
for(int i = 1; i <= n; i++)
ans = ans + numTrees(i-1) * numTrees(n-i);
return ans;
}
};