Top 150 des entrevuesFacile

Ancêtre commun le plus bas de la BST

Guide détaillé et implémentation de Python pour le problème « L'ancêtre commun le plus bas de la BST ».

Énoncé du problème

Facile

Étant donné un arbre de recherche binaire (BST), recherchez le nœud ancêtre commun (LCA) le plus bas de deux nœuds donnés dans le BST.

Selon la définition de LCA : "L'ancêtre commun le plus bas est défini entre deux nœuds p et q comme le nœud le plus bas de T qui a à la fois p et q comme descendants (où nous autorisons un nœud à être un descendant de lui-même)."

Le BST est représenté sous forme d’une liste par ordre de niveaux. Implémentez une fonction lowestCommonAncestor(root: list, p: int, q: int) -> int qui renvoie la valeur du nœud LCA.

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

Exemples

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?
Pensez à utiliser des structures de données spécifiques aux arbres, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.