Top 150-InterviewMittel

Konstruieren Sie einen Binärbaum

Detaillierte Anleitung und Python-Implementierung für das Problem „Binärbaum erstellen“.

Problemstellung

Mittel

Gegeben sind zwei Integer-Arrays preorder und inorder, wobei preorder die Vorbestellungsdurchquerung eines Binärbaums und inorder die Inorder-Durchquerung desselben Baums ist. Konstruieren Sie den Binärbaum und geben Sie ihn zurück.

Der Baum sollte als Liste mit Ebenenreihenfolge zurückgegeben werden. Implementieren Sie eine Funktion buildTree(preorder: list, inorder: list) -> list.

Einschränkungen
  • 1 <= preorder.length <= 3000
  • inorder.length == preorder.length
  • -3000 <= preorder[i], inorder[i] <= 3000
  • preorder and inorder consist of unique values
  • Each value of inorder also appears in preorder
  • preorder is guaranteed to be the preorder traversal of the tree
  • inorder is guaranteed to be the inorder traversal of the tree

Beispiele

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

Preorder: root is 3. In inorder, 9 is to the left of 3 (left subtree) and [15,20,7] is to the right (right subtree). Recursively build: left subtree is just [9], right subtree has root 20 with children 15 and 7.

Example 2
Input
[-1], [-1]
Output
[-1]
Explanation

Single node tree.

Need a Hint?
Erwägen Sie die Verwendung von Trees-spezifischen Datenstrukturen wie Sets oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

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

Im Editor öffnen
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

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.