Entrevista a los 150 mejoresMedio

Serializar y deserializar el árbol binario

Guía detallada e implementación de Python para el problema 'Serializar y deserializar árbol binario'.

Declaración del problema

Medio

La serialización es el proceso de convertir una estructura de datos u objeto en una secuencia de bits para que pueda almacenarse en un archivo o memoria intermedia, o transmitirse a través de un enlace de conexión de red para ser reconstruido más tarde en el mismo entorno informático o en otro.

Diseñar un algoritmo para serializar y deserializar un árbol binario. No hay restricciones sobre cómo debería funcionar su algoritmo de serialización/deserialización. Solo necesita asegurarse de que un árbol binario se pueda serializar en una cadena y que esta cadena se pueda deserializar en la estructura de árbol original.

El árbol se representa como una lista de orden de niveles. Implementar dos funciones:

- serialize(root: list) -> str que convierte el árbol en una cadena.

- deserialize(data: str) -> list que convierte la cadena nuevamente al árbol.

Para realizar pruebas, implemente serializeDeserialize(root: list) -> list que serializa y luego deserializa, devolviendo el resultado.

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

Ejemplos

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 la posibilidad de utilizar estructuras de datos específicas de Trees, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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 recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.