Leetcode #96 Unique Binary Search Trees

题目链接:https://leetcode.com/problems/unique-binary-search-trees/

 

从最简单的情况开始考虑:

n = 0:只有“空树”这一种情况。f[0] = 1。

n = 1:只有“根节点”这一种情况。f[1] = 1。

n = 2:由于“根节点”必须存在,所以只有一个节点的位置是可以变化的。即“左子树0个节点,右子树1个节点”,或者“左子树1个节点,右子树0个节点”。f[2] = f[0] * f[1] + f[1] * f[0]。

 

同理,在n继续增加的过程中,有n-1个节点的位置是可以变化的,即f[n] = f[0] * f[n-1] + f[1] * f[n-2] + ... + f[n-1] * f[0]。

posted @ 2015-04-05 22:10  meowcherry  阅读(141)  评论(0编辑  收藏  举报