Тема Описание:
Метод один:
# Определение для бинарного узла дерева. # Класс TreeNode: # Защита __init __ (я, х): # self.val = х # self.left = None # self.right = None класс Решения: Защиту buildTree (самость, предзаказ: Список [INT], Симметричный: Список [ INT]) -> TreeNode: Защита помощник (in_left = 0, in_right = LEN (Симметричный)): нелокальная pre_idx # если нет элементов, чтобы построить поддерева , если in_left == in_right: возвращающие None # подобрать pre_idx элемент в качестве корня root_val = предзаказ [pre_idx] корень = TreeNode (root_val) # корневые расколы заказовМои список # в левый и правый поддерева индекс = idx_map [root_val] # рекурсии pre_idx + = 1 # построить левое поддерево root.left = хелперов (in_left, индекс) # построить правое поддерево root.right = помощника (индекс + 1 , in_right) возвращение корневые # начинается с первого элемента предзаказа pre_idx = 0 # построить значение HashMap -> индекс idx_map = {вал: IDX для IDX, Вэл в Перечислять (заказовМои)} возвращения помощника ()