Menu
CoddyTech

Maximum Depth of Binary Tree

Vous obtenez un arbre binaire stocké dans le tableau tree dans l’ordre par niveaux. La racine se trouve à l’indice 0, les enfants du nœud à l’indice i se trouvent aux indices 2*i+1 (à gauche) et 2*i+2 (à droite), -1 indique un emplacement vide, et le tableau peut se terminer par des entrées -1 supplémentaires. Renvoyez la profondeur maximale de l’arbre : le nombre de nœuds sur le plus long chemin de la racine jusqu’à une feuille.

Fonction

maxDepth(tree: integer-array) → integer
treeinteger-array
l’arbre binaire dans l’ordre par niveaux, avec -1 pour une position vide
Renvoieinteger
le nombre de nœuds sur le plus long chemin de la racine à une feuille

Contraintes

  • 1 ≤ tree.length ≤ 32767
  • Chaque tree[i] vaut -1 ou une valeur telle que 0 ≤ tree[i] ≤ 1000.
  • tree[0] n'est jamais -1, donc l'arbre a au moins un nœud.
  • Le tableau peut se terminer par des entrées -1 supplémentaires après le dernier nœud.
  • Les deux enfants d’un emplacement vide sont également vides, et la profondeur est au plus 14.

Exemples

Entrée
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Sortie
4
Explication
Le chemin le plus long est 5, 8, 3, 6 (indices 0, 1, 4, 9), qui contient 4 nœuds. Le chemin passant par 1 s’arrête après 2 nœuds.
challenge icon

Pour aller plus loin

Comment renverrais-tu les valeurs d’un plus long chemin de la racine à une feuille, ainsi que sa longueur ? Si plusieurs chemins sont ex æquo, lequel renverrais-tu ?

Réinitialiser le code
def maxDepth(tree):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

4