from typing import List, Optional
import json
# Definition for a binary tree node.classTreeNode:def__init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
classSolution:defgenerateTrees(self, n: int) -> List[Optional[TreeNode]]:
result = []
# 存储生成的树deftravserse(root_val: int, list: List[int]):ifnot root_val:
return0else:
root = TreeNode(root_val)
# result = next((x for x,val in enumerate(list) if val > root_val), len(list));
matching_values = [val for val in list if val > list[0]] #
print(matching_values, "--------------matching_values")
for value in matching_values:
print(value,"-------------values")
result = next((x for x, val in enumerate(list) if val == value), None);
print(result,"/////////////////////////result")
print(list[1:(result+1)])
print(list[(result+1):])
print("///////////////////////////////////////")
root.left = travserse(list[result], list[1:result])
root.right = travserse(list[result], list[result:])
return root
tree_arr=[]
defprepoder(root):ifnot root:
return0;
else:
tree_arr.append(root.val)
prepoder(root.left)
prepoder(root.right)
for index, value in enumerate(list(range(1, n + 1))):
print(value,"-------------",index)
tree = travserse(value, list(range(1, n + 1)))
prepoder(tree)
print(tree_arr,"---------------------treeArr")
print("======================================================")
print("======================================================")
print("======================================================")
print("======================================================")
print("======================================================")
result.append(tree_arr)
tree_arr = []
# print(result, "--------------------result")return result
# 创建Solution类的实例
test = Solution()
# 调用generateTrees方法
result = test.generateTrees(3)
# 打印结果# for tree in result:# print(tree.val if tree else None)