Sezione DSAMedio

Costruzione di alberi

Guida dettagliata e implementazione Python per il problema della "costruzione di alberi".

Dichiarazione del problema

Medio

Scrivere una funzione build_tree(preorder, inorder) che ricostruisca un albero binario dalle sue liste di attraversamento in preordine e in ordine e restituisca l'attraversamento in ordine di livello dell'albero ricostruito (rappresentato come una lista, con None per i nodi vuoti).

Vincoli
  • 1 <= len(preorder) <= 1000
  • inorder.length == preorder.length

Esempi

Example 1
Input
preorder = [3, 9, 20, 15, 7], inorder = [9, 3, 15, 20, 7]
Output
[3, 9, 20, None, None, 15, 7]
Explanation

Preorder allows identifying the root 3. Inorder splits left subtree [9] and right subtree [15, 20, 7]. Reconstructed tree has level order [3, 9, 20, None, None, 15, 7].

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Trees come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Apri nell'editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.