Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Dadas dos matrices de enteros hacer un pedido
y en orden
dónde hacer un pedido
es el recorrido en preorden de un árbol binario y en orden
es el recorrido en orden del mismo árbol, construcción y retorno el árbol binario.
Ejemplo 1:
Aporte: preorden = [3,9,20,15,7], enorden = [9,3,15,20,7] Producción: [3,9,20,nulo,nulo,15,7]
Ejemplo 2:
Aporte: preorden = [-1], inorden = [-1] Producción: [-1]
Restricciones:
1 <= preorder.length <= 3000
inorder.length == preorder.length
-3000 <= preorden[i], inorden[i] <= 3000
hacer un pedido
yen orden
consistir en único valores.- Cada valor de
en orden
También aparece enhacer un pedido
. hacer un pedido
es garantizado ser el recorrido previo del árbol.en orden
es garantizado ser el recorrido en orden del árbol.
Tabla de contenido
PalancaPitón
Complejidad de tiempo #: O(n) Complejidad de espacio #: O(n) de escribir importar Lista, Clase opcional Solución: def buildTree(self, preorder: List[int], inorder: List[int]) -> Opcional[NodoTree]: def dfs(izquierda: int, derecha: int): preorderIndex no local si izquierda > derecha: devuelve Ninguno rootValue = preorder[preorderIndex] raíz = NodoTree(rootValue) preorderIndex += 1 raíz.izquierda = dfs(izquierda, inorderMap[rootValue] - 1) raíz.derecha = dfs(inorderMap[rootValue] + 1, derecha) devuelve raíz preorderIndex = 0 inorderMap = {} para i, valor en enumerar(inorder): inorderMap[valor] = i devuelve dfs(0, len(inorder) - 1) preorder = [3, 9, 20, 15, 7] inorder = [9, 3, 15, 20, 7] print(Solution().buildTree(preorder, inorder))