Menu
CoddyTech

Bottom View of Binary Tree

Le tableau root contient un arbre binaire : la racine à l’indice 0, les enfants de l’indice i aux indices 2i+1 (à gauche) et 2i+2 (à droite), -1 pour un emplacement vide, et éventuellement des entrées -1 supplémentaires à la fin.

La racine se trouve dans la colonne 0 ; un déplacement vers la gauche fait reculer d’une colonne, un déplacement vers la droite fait avancer d’une colonne. Vu d’en bas, chaque colonne montre son nœud le plus profond et, en cas d’égalité, le dernier sur ce niveau lorsqu’on lit de gauche à droite (l’indice le plus grand). Renvoie les valeurs que tu vois, en commençant par la colonne la plus à gauche.

Fonction

bottomView(root: integer-array) → integer-array
rootinteger-array
l’arbre dans l’ordre du tas, avec -1 pour un emplacement vide
Renvoieinteger-array
la valeur vue depuis le bas dans chaque colonne, en commençant par la colonne la plus à gauche

Contraintes

  • 1 ≤ root.length ≤ 32767
  • Chaque root[i] est -1 ou une valeur telle que 0 ≤ root[i] ≤ 104, et aucune valeur n'apparaît deux fois.
  • root[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 l’arbre comporte au plus 14 niveaux.

Exemples

Entrée
root = [5, 2, 9, 4, 7, 1, 6]
Sortie
[4, 2, 1, 9, 6]
Explication
La colonne 0 contient 5 et, deux niveaux plus bas, 7 (index 4) et 1 (index 5). 1 apparaît plus tard au même niveau, donc c’est lui qui s’affiche. Les colonnes -2, -1, 1 et 2 contiennent 4, 2, 9 et 6.
challenge icon

Pour aller plus loin

Si une égalité au niveau le plus profond d’une colonne doit renvoyer tous les nœuds ex æquo, de gauche à droite, comment faudrait-il modifier la version en parcours en largeur ? Que renverrait la colonne 0 de l’exemple 1 ?

Réinitialiser le code
def bottomView(root):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

root = [5, 2, 9, 4, 7, 1, 6]

Résultat attendu

[4, 2, 1, 9, 6]