Top 150 des entrevuesMoyen

Construire un arbre binaire

Guide détaillé et implémentation de Python pour le problème « Construire un arbre binaire ».

Énoncé du problème

Moyen

Étant donné deux tableaux d'entiers preorder et inorder où preorder est le parcours en pré-ordre d'un arbre binaire et inorder est le parcours en ordre du même arbre, construisez et renvoyez l'arbre binaire.

L'arbre doit être renvoyé sous forme de liste par ordre de niveau. Implémentez une fonction buildTree(preorder: list, inorder: list) -> list.

Contraintes
  • 1 <= preorder.length <= 3000
  • inorder.length == preorder.length
  • -3000 <= preorder[i], inorder[i] <= 3000
  • preorder and inorder consist of unique values
  • Each value of inorder also appears in preorder
  • preorder is guaranteed to be the preorder traversal of the tree
  • inorder is guaranteed to be the inorder traversal of the tree

Exemples

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

Preorder: root is 3. In inorder, 9 is to the left of 3 (left subtree) and [15,20,7] is to the right (right subtree). Recursively build: left subtree is just [9], right subtree has root 20 with children 15 and 7.

Example 2
Input
[-1], [-1]
Output
[-1]
Explanation

Single node tree.

Need a Hint?
Pensez à utiliser des structures de données spécifiques aux arbres, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.