Classe LinkedList
Lista encadeada é uma das perguntas mais clássicas de entrevista técnica — e não por acaso: entender como ela funciona por dentro ensina como qualquer estrutura de dados dinâmica (inclusive o array que você já usa) lida com inserção, remoção e navegação sem um índice numérico direto.
O PROBLEMA
Implemente lista encadeada com classes No e LinkedList. Métodos: append, prepend, delete, search, toArray, size.
EXEMPLO
const list = new LinkedList(); list.append(1); list.append(2); list.prepend(0); list.toArray() → [0,1,2]
SOBRE O CONCEITO
Cada elemento é um No (nó) que guarda um valor e uma referência (next) pro próximo nó — não existe posição numérica, só ponteiros encadeados. A LinkedList guarda uma referência pro primeiro nó (head) e navega a lista percorrendo no.next em sequência dentro de um while, até bater em null (o fim da lista). O ponto mais delicado é delete: ao remover um nó do meio, você precisa reconectar o next do nó anterior direto pro nó seguinte — perder essa referência no meio do caminho quebra a lista inteira a partir dali, e remover o primeiro elemento exige atualizar o head em vez de mexer em next.
RESOLUÇÃO