Le migliori 150 intervisteFacile

Convalida BST

Guida dettagliata e implementazione Python per il problema "Convalida BST".

Dichiarazione del problema

Facile

Data la radice di un albero binario, determinare se si tratta di un albero di ricerca binario (BST) valido.

Un BST valido è definito come segue:

- Il sottoalbero sinistro di un nodo contiene solo nodi con chiavi strettamente inferiori alla chiave del nodo.

- Il sottoalbero destro di un nodo contiene solo nodi con chiavi strettamente maggiori della chiave del nodo.

- Sia il sottoalbero sinistro che quello destro devono essere anche alberi di ricerca binari.

L'albero è rappresentato come un elenco in ordine di livello. Implementa una funzione isValidBST(root: list) -> bool.

Vincoli
  • The number of nodes in the tree is in the range [1, 10000]
  • -2^31 <= Node.val <= 2^31 - 1

Esempi

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

The left child 1 < root 2, and right child 3 > root 2. Valid BST.

Example 2
Input
[5,1,4,None,None,3,6]
Output
False
Explanation

The right child of root is 4, which is less than 5. Also, node 3 is in the right subtree of 5 but is less than 5. Not a valid BST.

Example 3
Input
[5,4,6,None,None,3,7]
Output
False
Explanation

Node 3 is in the right subtree of 5 but has value 3 < 5. Not valid.

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Trees come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.