150 principais entrevistasMédio

Serializar e desserializar árvore binária

Guia detalhado e implementação de Python para o problema 'Serialize And Deserialize Binary Tree'.

Declaração do problema

Médio

Serialização é o processo de conversão de uma estrutura de dados ou objeto em uma sequência de bits para que possa ser armazenada em um arquivo ou buffer de memória, ou transmitida através de um link de conexão de rede para ser reconstruída posteriormente no mesmo ou em outro ambiente de computador.

Projete um algoritmo para serializar e desserializar uma árvore binária. Não há restrição sobre como seu algoritmo de serialização/desserialização deve funcionar. Você só precisa garantir que uma árvore binária possa ser serializada em uma string e que essa string possa ser desserializada na estrutura de árvore original.

A árvore é representada como uma lista de ordem de nível. Implemente duas funções:

- serialize(root: list) -> str que converte a árvore em uma string.

- deserialize(data: str) -> list que converte a string de volta para a árvore.

Para teste, implemente serializeDeserialize(root: list) -> list que serializa e depois desserializa, retornando o resultado.

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

Exemplos

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?
Considere usar estruturas de dados específicas de árvores, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.