Top 150 des entrevuesMoyen

Sérialiser et désérialiser l'arbre binaire

Guide détaillé et implémentation de Python pour le problème « Sérialiser et désérialiser l'arbre binaire ».

Énoncé du problème

Moyen

La sérialisation est le processus de conversion d'une structure de données ou d'un objet en une séquence de bits afin qu'il puisse être stocké dans un fichier ou une mémoire tampon, ou transmis via une liaison de connexion réseau pour être reconstruit ultérieurement dans le même environnement informatique ou dans un autre.

Concevez un algorithme pour sérialiser et désérialiser un arbre binaire. Il n'y a aucune restriction sur la façon dont votre algorithme de sérialisation/désérialisation doit fonctionner. Vous devez simplement vous assurer qu'un arbre binaire peut être sérialisé en chaîne et que cette chaîne peut être désérialisée en structure arborescente d'origine.

L'arborescence est représentée sous la forme d'une liste par ordre de niveaux. Implémentez deux fonctions :

- serialize(root: list) -> str qui convertit l'arbre en chaîne.

- deserialize(data: str) -> list qui reconvertit la chaîne en arbre.

Pour les tests, implémentez serializeDeserialize(root: list) -> list qui sérialise puis désérialise, renvoyant le résultat.

Contraintes
  • The number of nodes in the tree is in the range [0, 10000]
  • -1000 <= Node.val <= 1000

Exemples

Example 1
Input
[1,2,3,None,None,4,5]
Output
[1,2,3,None,None,4,5]
Explanation

The tree is serialized to a string and deserialized back to the same tree structure.

Example 2
Input
[]
Output
[]
Explanation

An empty tree serialized and deserialized remains empty.

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.