Menu
CoddyTech

Invert Binary Tree

Tu reçois un arbre binaire stocké dans le tableau tree en 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 une position vide, et le tableau peut se terminer par des entrées -1 supplémentaires.

Inverse l’arbre : échange les enfants gauche et droit de chaque nœud afin que l’arbre entier devienne son image miroir. Renvoie l’arbre inversé sous la même forme, sans entrées -1 à la fin.

Fonction

invertTree(tree: integer-array) → integer-array
treeinteger-array
l’arbre binaire dans l’ordre par niveaux, avec -1 pour une position vide
Renvoieinteger-array
l’arbre miroir en parcours par niveaux, sans entrées -1 à la fin

Contraintes

  • 1 ≤ tree.length ≤ 16383
  • Chaque tree[i] est -1 ou une valeur telle que 0 ≤ tree[i] ≤ 1000.
  • tree[0] n’est jamais -1, donc l’arbre comporte 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 de 14.

Exemples

Entrée
tree = [5, 3, 8, 1, 4, -1, 9]
Sortie
[5, 8, 3, 9, -1, 4, 1]
Explication
Les enfants de la racine 3 et 8 échangent leurs places. Sous eux, 1 et 4, qui se trouvaient sous 3, reviennent sous la forme de 4 et 1, et 8, qui n'avait qu'un enfant droit, 9, l'a maintenant à gauche.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment vérifieriez-vous qu’un arbre est son propre miroir, en utilisant les mêmes paires d’indices, mais sans construire la copie inversée ?

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

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

[5, 8, 3, 9, -1, 4, 1]