Menu
CoddyTech

Boundary Traversal of Binary Tree

O array root armazena uma árvore binária em ordem por níveis: a raiz no índice 0, os filhos do índice i em 2i+1 (à esquerda) e 2i+2 (à direita), -1 para uma posição vazia e, possivelmente, entradas extras de -1 no final. Uma folha é um nó sem filhos.

Retorne o contorno no sentido anti-horário a partir da raiz:

  1. A raiz.
  2. O contorno esquerdo, de cima para baixo: a partir do filho esquerdo da raiz, avance para o filho esquerdo, se houver; caso contrário, para o filho direito. Pare antes de uma folha.
  3. Todas as folhas, da esquerda para a direita.
  4. O contorno direito, de baixo para cima: o espelho do contorno esquerdo, a partir do filho direito da raiz.

Nenhum nó é listado duas vezes, então uma árvore com um único nó fornece apenas sua raiz.

Função

boundaryTraversal(root: integer-array) → integer-array
rootinteger-array
a árvore binária em ordem por nível, com -1 para uma posição vazia
Retornainteger-array
os valores de fronteira, no sentido anti-horário a partir da raiz

Restrições

  • 1 ≤ root.length ≤ 32767
  • Cada root[i] é -1 ou um valor com 0 ≤ root[i] ≤ 105.
  • root[0] nunca é -1, então a árvore tem pelo menos um nó.
  • O array pode terminar com entradas extras -1 após o último nó.
  • Ambos os filhos de um espaço vazio também estão vazios, e a profundidade é no máximo 14.
  • Os valores dos nós são distintos.

Exemplos

Entrada
root = [7, 3, 9, 1, 5, 8, -1, -1, -1, 4, 6]
Saída
[7, 3, 1, 4, 6, 8, 9]
Explicação
Depois da raiz 7, o limite esquerdo é 3: seu filho 1 é uma folha. As folhas são 1, 4, 6, 8. O limite direito é 9, acima da folha 8.
challenge icon

Para ir além

Como você listaria o contorno no sentido horário: a raiz, a borda direita de cima para baixo, as folhas da direita para a esquerda e, então, a borda esquerda de baixo para cima?

Redefinir código
def boundaryTraversal(root):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

root = [7, 3, 9, 1, 5, 8, -1, -1, -1, 4, 6]

Saída Esperada

[7, 3, 1, 4, 6, 8, 9]