Sekcja DSAŚredni

Drzewo AVL

Szczegółowy przewodnik i implementacja Python dla problemu „Drzewo AVL”.

Oświadczenie o problemie

Średni

Napisz funkcję is_avl_balanced(tree_arr), która pobiera tablicową reprezentację drzewa binarnego tree_arr i zwraca True, jeśli drzewo ma zrównoważoną wysokość (dla każdego węzła wysokość jego lewego i prawego poddrzewa różni się co najwyżej o 1) i jest prawidłowym BST lub False w przeciwnym razie.

Ograniczenia
  • 0 <= len(tree_arr) <= 1000

Przykłady

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

The tree is a valid BST and the depth difference of left/right subtrees of all nodes is at most 1.

Example 2
Input
tree_arr = [1, 2, None, 3, None, None, None, 4]
Output
False
Explanation

The tree is unbalanced because leaf node 4 is at depth 4 while right subtree of node 1 is 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.