150 najlepszych wywiadówŁatwe

Najniższy wspólny przodek BST

Szczegółowy przewodnik i implementacja Python dla problemu „Najniższego wspólnego przodka BST”.

Oświadczenie o problemie

Łatwe

Biorąc pod uwagę drzewo wyszukiwania binarnego (BST), znajdź węzeł najniższego wspólnego przodka (LCA) dwóch podanych węzłów w BST.

Zgodnie z definicją LCA: „Najniższy wspólny przodek jest zdefiniowany pomiędzy dwoma węzłami p i q jako najniższy węzeł w T, który ma zarówno p, jak i q jako potomków (gdzie pozwalamy, aby węzeł był swoim potomkiem).”

BST jest reprezentowany jako lista kolejności poziomów. Zaimplementuj funkcję lowestCommonAncestor(root: list, p: int, q: int) -> int, która zwraca wartość węzła LCA.

Ograniczenia
  • The number of nodes in the tree is in the range [2, 100000]
  • -1000000000 <= Node.val <= 1000000000
  • All Node.val are unique
  • p != q
  • p and q will exist in the BST

Przykłady

Example 1
Input
[6,2,8,0,4,7,9,None,None,3,5], 2, 8
Output
6
Explanation

The LCA of nodes 2 and 8 is 6, which is the root.

Example 2
Input
[6,2,8,0,4,7,9,None,None,3,5], 2, 4
Output
2
Explanation

The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself.

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

The LCA of nodes 2 and 1 is 2.

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.