leetcode-105- предыдущей последовательности предпорядок с двоичной древовидной структурой

Тема Описание:

  

Метод один:

# Определение для бинарного узла дерева. 
# Класс 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, Вэл в Перечислять (заказовМои)} 
         возвращения помощника ()

 

рекомендация

отwww.cnblogs.com/oldby/p/11184886.html