n个点二叉树的个数

N个节点的二叉树个数

先考虑只有一个节点的情形,f(1)=1

先固定根,递归考虑左右子树

用S1表示左子树,S2是右子树

f(2)=S1(1)+S2(1)=2

如果有三个节点呢?

左右子树的分布情况为2=0+2=1+1=2+0。

所以有3个节点时,递归形式为f(3)=f(2) + f(1)*f(1) + f(2).

那么有n个节点呢?我们固定一个节点,那么左右子树的分布情况为n-1=n-1 + 0 = n-2 + 1 = ... = 1 + n-2 = 0 + n-1

f(n) = f(n-1) + f(n-2)f(1) + f(n-3)f(2) + ... + f(1)f(n-2) + f(n-1)

前几个数为1,1,2,5,14,42,132。

此外,还有一个通项公式为1/(n+1) * C(n, 2n) = C(n, 2n) - C(n-1, 2n) , n = 0,1,2,...

卡特兰数公式

img

posted @ 2022-09-12 11:15  zyc_xianyu  阅读(103)  评论(0编辑  收藏  举报