Unique Binary Search Trees
原题链接Unique Binary Search Trees
给定数值n,计算有多少种不同的二叉搜索树能够存储 1,2,...,n 这n个数
二叉搜索树满足的条件
- 当前根节点的值大于左子树节点的值
- 当前根节点的值小于右子树节点的值
- 左右子树同样是二叉搜索树
根据上述规则可以看出,根节点值不同,形成的二叉搜索树就不同,那么 [1:n] 范围内的n个数就有n个不同的选择
假设选取i作为根节点值,根据二叉搜索树的规则, [1:i−1] 这i-1个数在其左子树上, [i+1:n] 这n-i个数在其右子树上
对于由 [1:i−1] 形成的左子树,又可以采用上述方法进行分解
对于由