Given an integer n, return all the structurally unique **BST'**s (binary search trees), which has exactly n nodes of unique values from 1 to n. Return the answer in any order.
Example 1:
Input: n = 3 Output: [[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]
95*. Unique Binary Search Trees II · leetcode
- code
class Solution:
def generateTrees(self, n):
def generate(first, last):
trees = []
for root in range(first, last+1):
for left in generate(first, root-1):
for right in generate(root+1, last):
node = TreeNode(root)
node.left = left
node.right = right
trees += node,
return trees or [None]
return generate(1, n)