95. Unique Binary Search Trees II

# Medium

用两层循环针对当前的root来构建新的bst

Solution:

  1. 由于每次递归时,bst都是新的,因此helper函数的开头新建了一个空bst

  2. root左边有n个解法,root右边有m个解法,那么一共就有n*m个解法,所以一定要用两层嵌套的for循环得到新的bst

  3. helper函数中的终止条件要注意,当start>end时才终止,这时候一定要加上NULL,不然那么多NULL哪里加呢。这一点是最难想清楚的。

Time complexity: fi=(fi1)(fni)f_i=\sum(f_{i-1})*\sum(f_{n-i}) 很难算,空间复杂度是一样的。

Last updated

Was this helpful?