Menu
CoddyTech

Reverse Linked List

FácilLista ligadapython iconjava iconcpp iconc iconjs icon+10

Você recebe uma lista simplesmente encadeada armazenada no array next: o nó i aponta para o nó next[i], -1 encerra a lista e o início é o nó 0. Os nós não estão armazenados na ordem da lista, então siga os links.

Inverta a lista invertendo cada link, de modo que o antigo último nó se torne o início e o nó 0 se torne o último, apontando para -1. Retorne o array next atualizado, que tem o mesmo tamanho que a entrada.

Função

reverseList(next: integer-array) → integer-array
nextinteger-array
o índice do nó ao qual cada nó está ligado, ou -1 para o último nó
Retornainteger-array
o próximo array da lista invertida

Restrições

  • 1 ≤ next.length ≤ 5000
  • Cada next[i] é -1 ou um índice de nó de 0 a next.length-1.
  • A partir do nó 0, a lista visita cada nó exatamente uma vez e então chega a -1. Não há ciclo.

Exemplos

Entrada
next = [1, 2, 3, -1]
Saída
[-1, 0, 1, 2]
Explicação
A lista é 0 → 1 → 2 → 3. Invertida, ela fica 3 → 2 → 1 → 0, então o nó 3 aponta para 2, o nó 2 para 1, o nó 1 para 0 e o nó 0 para -1.

lock icon+11 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue inverter apenas a parte da lista entre a posição left e a posição right, deixando os nós anteriores e posteriores no mesmo lugar?

Redefinir código
def reverseList(next):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

next = [1, 2, 3, -1]

Esperado

[-1, 0, 1, 2]