完全没思路,直接去看了题解
题目本身是一道动态规划的题目,其实和二叉搜索树的性质关联不大
public int numTrees(int n) {
int G[] = new int[n+1];
G[0] = 1;
G[1] = 1;
// 第一个循环起到逐步计算的作用
for (int i = 2; i <= n; i++){
for (int j = 1; j <= i; j++){
G[i] += G[j - 1] * G[i - j];
}
}
return G[n];
}
此外还可以根据数学公式直接算出