Entrevista a los 150 mejoresfácil

Ancestro común más bajo de BST

Guía detallada e implementación de Python para el problema del 'Ancestro común más bajo de BST'.

Declaración del problema

fácil

Dado un árbol de búsqueda binaria (BST), busque el nodo del ancestro común más bajo (LCA) de dos nodos determinados en el BST.

Según la definición de LCA: "El ancestro común más bajo se define entre dos nodos p y q como el nodo más bajo en T que tiene tanto p como q como descendientes (donde permitimos que un nodo sea descendiente de sí mismo)".

El BST se representa como una lista de orden de niveles. Implemente una función lowestCommonAncestor(root: list, p: int, q: int) -> int que devuelva el valor del nodo LCA.

Restricciones
  • 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

Ejemplos

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?
Considere la posibilidad de utilizar estructuras de datos específicas de Trees, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el editor
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

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.