Le migliori 150 intervisteMedio

Serializza e deserializza l'albero binario

Guida dettagliata e implementazione Python per il problema "Serializzare e deserializzare l'albero binario".

Dichiarazione del problema

Medio

La serializzazione è il processo di conversione di una struttura di dati o di un oggetto in una sequenza di bit in modo che possa essere archiviato in un file o in un buffer di memoria o trasmesso attraverso un collegamento di connessione di rete per essere ricostruito successivamente nello stesso o in un altro ambiente informatico.

Progettare un algoritmo per serializzare e deserializzare un albero binario. Non esistono restrizioni sul funzionamento dell'algoritmo di serializzazione/deserializzazione. Devi solo assicurarti che un albero binario possa essere serializzato in una stringa e questa stringa possa essere deserializzata nella struttura ad albero originale.

L'albero è rappresentato come un elenco in ordine di livello. Implementare due funzioni:

- serialize(root: list) -> str che converte l'albero in una stringa.

- deserialize(data: str) -> list che riconverte la stringa nell'albero.

Per i test, implementare serializeDeserialize(root: list) -> list che serializza e quindi deserializza, restituendo il risultato.

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

Esempi

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?
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.