Sekcja DSAŚredni

Budowa drzewa

Szczegółowy przewodnik i implementacja Python dla problemu „Konstrukcja drzewa”.

Oświadczenie o problemie

Średni

Napisz funkcję build_tree(preorder, inorder), która rekonstruuje drzewo binarne na podstawie jego list przechodzenia w kolejności wstępnej i w kolejności i zwraca kolejność przechodzenia zrekonstruowanego drzewa (reprezentowanego jako lista z None dla pustych węzłów).

Ograniczenia
  • 1 <= len(preorder) <= 1000
  • inorder.length == preorder.length

Przykłady

Example 1
Input
preorder = [3, 9, 20, 15, 7], inorder = [9, 3, 15, 20, 7]
Output
[3, 9, 20, None, None, 15, 7]
Explanation

Preorder allows identifying the root 3. Inorder splits left subtree [9] and right subtree [15, 20, 7]. Reconstructed tree has level order [3, 9, 20, None, None, 15, 7].

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.