Menu
CoddyTech

Maximum Depth of Binary Tree

On vous donne un arbre binaire stocké dans le tableau tree en ordre par niveau. 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 une position 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 contient au moins un nœud.
  • L’array 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 de 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.

lock icon+13 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment renverrais-tu les valeurs d’un plus long chemin de la racine à une feuille, et pas seulement sa longueur ? Si plusieurs chemins sont à égalité, lequel renverrais-tu, et comment le préciserais-tu dans le contrat ?

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

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

4