Menu
CoddyTech

Binary Tree Level Order Traversal

Le tableau tree contient un arbre binaire. 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 place vide, et des entrées -1 supplémentaires peuvent se trouver à la fin.

Retournez les valeurs des nœuds niveau par niveau : une liste par niveau, de la racine jusqu’au niveau le plus profond, avec les valeurs de gauche à droite.

Fonction

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
l’arbre en ordre de tas, avec -1 pour une position vide
Renvoieinteger-2d-array
une liste de valeurs par niveau, le niveau supérieur en premier, chacune de gauche à droite

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.
  • 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 d’au plus 14.

Exemples

Entrée
tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Sortie
[[4], [9, 2], [6, 8, 5], [3]]
Explication
L’indice 3 est vide, donc 9 n’a qu’un enfant droit, 6. Le troisième niveau contient 6, 8, 5, et le 3 à l’indice 9, sous 6, est seul au quatrième niveau.
challenge icon

Pour aller plus loin

Peux-tu renvoyer les niveaux dans l’ordre en zigzag, le premier de gauche à droite, le deuxième de droite à gauche, et ainsi de suite, sans trier aucun niveau ?

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

Test #1

Test #2

Test #3

Argument

tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]

Résultat attendu

[[4], [9, 2], [6, 8, 5], [3]]