编辑代码

from typing import List, Optional
import json
# Definition for a binary tree node.
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def generateTrees(self, n: int) -> List[Optional[TreeNode]]:
        result = []
        # 存储生成的树

        def travserse(root_val: int, list: List[int]):
            if not root_val: 
                return 0
                
            else:
                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=[]
        def prepoder(root):
            if not root:
                return 0;
            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)