## template
```python
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def to_list(self, count):
queue = []
queue.append(self)
result = []
while len(queue) > 0:
if count == 0:
break
node = queue.pop(0)
if node is None:
result.append('null')
else:
count -= 1
result.append(node.val)
queue.append(node.left)
queue.append(node.right)
return result
class Solution(object):
def generateTrees(self, n):
"""
:type n: int
:rtype: List[TreeNode]
"""
if n == 0:
return []
return self.get_trees(1, n)
def get_trees_impl(self, start, end):
trees = []
if start > end:
trees.append(None)
return trees
for i in range(start, end + 1):
lefts = self.get_trees_impl(start, i - 1)
rights = self.get_trees_impl(i + 1, end)
for j in range(len(lefts)):
for k in range(len(rights)):
root = TreeNode(i)
root.left = lefts[j]
root.right = rights[k]
trees.append(root)
return trees
def get_trees(self, start, end):
trees = self.get_trees_impl(start, end)
results = []
for tree in trees:
if tree is None:
results.append([])
else:
results.append(tree.to_list(end))
return results
# %%
s = Solution()
print(s.generateTrees(n=3))
```
## 答案
```python
```
## 选项
### A
```python
```
### B
```python
```
### C
```python
```