150 najlepszych wywiadówŚredni

Serializacja i deserializacja drzewa binarnego

Szczegółowy przewodnik i implementacja Python dla problemu „Serializacja i deserializacja drzewa binarnego”.

Oświadczenie o problemie

Średni

Serializacja to proces przekształcania struktury danych lub obiektu w sekwencję bitów, dzięki czemu można ją przechowywać w pliku lub buforze pamięci albo przesyłać łączem sieciowym w celu późniejszej rekonstrukcji w tym samym lub innym środowisku komputerowym.

Zaprojektuj algorytm serializacji i deserializacji drzewa binarnego. Nie ma ograniczeń co do sposobu działania algorytmu serializacji/deserializacji. Musisz tylko upewnić się, że drzewo binarne można serializować do łańcucha, a ten ciąg można deserializować do oryginalnej struktury drzewa.

Drzewo jest reprezentowane jako lista poziomów. Zaimplementuj dwie funkcje:

- serialize(root: list) -> str, który konwertuje drzewo na ciąg znaków.

- deserialize(data: str) -> list, który konwertuje ciąg z powrotem do drzewa.

Do testowania zaimplementuj serializeDeserialize(root: list) -> list, który serializuje, a następnie deserializuje, zwracając wynik.

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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla drzew, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.