[Leetcode] 0235. Mínimo común ancestro de un árbol binario de búsqueda

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github

Tabla de contenido

Medio


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

Según el Definición de ACV en Wikipedia:“El ancestro común más bajo se define entre dos nodos pag y q como el nodo más bajo en T que tiene ambos pag y q como descendientes (donde permitimos un nodo para ser descendiente de sí mismo).”

 

Ejemplo 1:

Aporte: raíz = [6,2,8,0,4,7,9,nulo,nulo,3,5], p = 2, q = 8
Producción: 6
Explicación: El LCA de los nodos 2 y 8 es 6.

Ejemplo 2:

Aporte: raíz = [6,2,8,0,4,7,9,nulo,nulo,3,5], p = 2, q = 4
Producción: 2
Explicación: El LCA de los nodos 2 y 4 es 2, ya que un nodo puede ser descendiente de sí mismo según la definición de LCA.

Ejemplo 3:

Aporte: raíz = [2,1], p = 2, q = 1
Producción: 2

 

Restricciones:

  • El número de nodos en el árbol está en el rango [2, 10 5 ].
  • -10 9 <= Nodo.val <= 10 9
  • Todo Nodo.val son único.
  • p != q
  • pag y q existirá en el BST.

Pitón

				
					# Definición de un nodo de árbol binario. # clase TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None clase Solución: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': si p.val < root.val y q.val < root.val: devuelve self.lowestCommonAncestor(root.left, p, q) si p.val > root.val y q.val > root.val: devuelve self.lowestCommonAncestor(root.right, p, q) devuelve root
				
			
es_ESEspañol