Menu
CoddyTech

Maximum Depth of Binary Tree

Ti viene dato un albero binario memorizzato nell’array tree in ordine per livelli. La radice si trova all’indice 0, i figli del nodo all’indice i si trovano agli indici 2*i+1 (sinistro) e 2*i+2 (destro), -1 indica una posizione vuota e l’array può terminare con elementi -1 aggiuntivi. Restituisci la profondità massima dell’albero: il numero di nodi nel percorso più lungo dalla radice fino a una foglia.

Funzione

maxDepth(tree: integer-array) → integer
treeinteger-array
l'albero binario in ordine per livelli, con -1 per una posizione vuota
Restituisceinteger
il numero di nodi nel percorso più lungo dalla radice a una foglia

Vincoli

  • 1 ≤ tree.length ≤ 32767
  • Ogni tree[i] è -1 oppure un valore con 0 ≤ tree[i] ≤ 1000.
  • tree[0] non è mai -1, quindi l'albero ha almeno un nodo.
  • L'array può terminare con elementi aggiuntivi -1 dopo l'ultimo nodo.
  • Entrambi i figli di una posizione vuota sono vuoti a loro volta e la profondità è al massimo 14.

Esempi

Input
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Output
4
Spiegazione
Il percorso più lungo è 5, 8, 3, 6 (indici 0, 1, 4, 9), e contiene 4 nodi. Il percorso che passa per 1 si ferma dopo 2 nodi.

lock icon+13 test nascosti all’invio

challenge icon

Per approfondire

Come restituiresti i valori di un percorso radice-foglia più lungo, non solo la sua lunghezza? Se più percorsi hanno la stessa lunghezza, quale restituiresti e come lo specificheresti nel contratto?

Ripristina il codice
def maxDepth(tree):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

Atteso

4