[toc]
题目
难度中等663收藏分享切换为英文关注反馈
给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?
示例:
1 | 输入: 3 |
思路
设G(n)为n个节点组成二叉搜索树的个数,f(i)为以i为根节点二叉搜索树的个数
则有:G(n) = f(1) + f(2) + … + f(n);
又因为i的左侧有i-1个节点,右侧有n-i个节点,
则有:f(i) = G(i-1) G(n-i);
结合上述两式可得:
G(n) = G(0) G(n-1) + G(1) G(n-2) + … + G(n-1) G(0);
编码
1 | class Solution { |
更多详细代码见我的代码仓库
https://github.com/ZhangnLei/java-base/tree/master/src/main/java/mrzhang/leecode
扫描二维码,分享此文章