[Leetcode] Unique Binary Search Trees I,II
一、Unique Binary Search Trees I
统计个数
迭代的方法可以解决。
f(0)=1,f(1)=1,f(2)=2,f(3)=3.
f(4)=f(0)*f(3)+f(1)*f(2)+f(2)*f(1)+f(3)*f(0)=10;
f(5)=f(0)*f(4)+f(1)*f(3)+f(2)*f(2)+f(3)*f(1)+f(4)*f(0);
以此类推即可
二、Unique Binary Search Trees II
这里可以使用递归的方式create all the trees
[1,5]
[1,0],[2,5]
[1,1],[3,5]
[1,2],[4,5]
[1,3],[5,5]
[1,4],[6,5]
当left.>right时,放回null,将所有的可能的tree的root节点放到一个list当中返回
对返回的left和right list,进行遍历所有的组合情况,从而得到以当前节点为root的所有的子树的情况。
依次递归类推。