Módulo 4 - Listas ligadas: a corrente de nós

Inserir e remover: só religar ponteiros

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 12/07/2026

O que você vai aprender

  • Inserir um nó no meio religando duas ligações.
  • Remover um nó ligando o anterior direto ao seguinte.
  • Entender por que a lista não precisa empurrar os outros nós.
  • Respeitar a ordem correta ao religar, para não perder nós.

O custo de empurrar no vetor

Imagine uma fila de dez pessoas e alguém que precisa entrar entre a terceira e a quarta. Num vetor, as posições são fixas e encostadas, então não há espaço vago no meio: para abrir a vaga, todo mundo da quarta em diante precisa dar um passo à frente. Se a fila tivesse mil pessoas e o novato entrasse no começo, quase mil teriam que se deslocar. Remover é o mesmo drama ao contrário: quando alguém sai do meio, todos atrás dele puxam um passo para trás, para não deixar buraco. Esse empurra-empurra é o custo que o vetor paga por manter tudo encostado e acessível por índice.

Duas linhas. Em cima, uma corrente de nós A aponta para C aponta para D, e um novo nó B flutuando abaixo, com duas setas tracejadas mostrando a religação: a ligação de A é redirecionada para B, e a ligação de B passa a apontar para C. Embaixo, o resultado final: A aponta para B aponta para C aponta para D, com o novo nó já encaixado na corrente sem que C e D tenham se movido.
Para inserir B entre A e C: aponte B para C, depois A para B. Nenhum outro nó se move.

Religar em dois passos

Na lista ligada, esse empurra-empurra some. Para inserir um novo nó entre dois nós existentes, digamos entre A e C, você não move ninguém: só ajusta duas ligações. Primeiro, faz a ligação do novo nó apontar para C (o seguinte). Depois, faz a ligação de A apontar para o novo nó. Pronto: A aponta para o novo, o novo aponta para C, e a corrente segue inteira. A ordem desses dois passos é crítica. Se você religar A para o novo primeiro, perde a referência de C, porque era a ligação de A que guardava onde C estava. Por isso a regra é: primeiro prenda o novo nó no resto da corrente, depois solte o anterior nele.

// inserir o no "novo" depois do no "anterior"
// 1) o novo aponta para quem vinha depois do anterior
novo.proximo <- anterior.proximo
// 2) so agora o anterior aponta para o novo
anterior.proximo <- novo
// remover o no depois do anterior:
anterior.proximo <- anterior.proximo.proximo   // pula o no removido

Inserir: religa duas setas na ordem certa. Remover: liga o anterior direto ao seguinte, pulando o nó.

🎮 Jogo da aula

A ordem de inserir um nó

Coloque os passos na ordem correta para inserir um novo nó entre A e C sem perder nenhum nó da corrente.

    Por que isso é barato

    A grande sacada é que religar custa sempre a mesma coisa, não importa o tamanho da lista. Inserir num vetor de mil elementos pode empurrar centenas deles; inserir numa lista ligada de mil elementos mexe em duas ligações, exatamente como numa lista de cinco. O trabalho não cresce com a lista. Existe uma pegadinha honesta: para religar você precisa já estar posicionado no nó anterior, e chegar até ele custa o passeio pela corrente. Ou seja, a religação em si é instantânea, mas achar o ponto certo é sequencial. Quando você já tem em mãos o nó anterior, como acontece ao percorrer a lista de uma vez, a inserção e a remoção são de fato baratíssimas.

    Teste rápido

    Por que inserir um nó no meio de uma lista ligada não precisa empurrar os outros nós, como no vetor?

    Perguntas frequentes

    Por que a ordem dos dois passos importa tanto?
    Porque a ligação do nó anterior é o único caminho conhecido para o resto da lista. Se você a redireciona para o novo nó antes de o novo nó apontar para o seguinte, perde a referência de tudo que vinha depois. Primeiro prenda o novo à corrente, depois solte o anterior nele.
    Como removo um nó da lista ligada?
    Você faz a ligação do nó anterior apontar direto para o nó seguinte, pulando o que quer remover. O nó removido some da corrente porque ninguém mais aponta para ele. Como em inserir, você precisa estar posicionado no nó anterior ao que será removido.
    Se religar é barato, por que a lista ligada nem sempre ganha?
    Porque chegar até o ponto de inserção pode ser caro. A religação em si é instantânea, mas percorrer a corrente até o nó anterior é sequencial. Se você precisa buscar a posição toda vez, essa busca pesa. A vantagem brilha quando você já está no ponto certo.
    E se eu quiser inserir no começo da lista?
    Aí é ainda mais simples: o novo nó aponta para a antiga cabeça, e a cabeça passa a ser o novo nó. Dois ajustes e pronto, sem percorrer nada. Inserir no começo de uma lista ligada é uma das operações mais rápidas que existem.
    Inserir no fim também é barato?
    Depende. Se você só tem a cabeça, precisa percorrer até o último nó para religá-lo, o que é sequencial. Muitas implementações guardam também uma referência para a cauda (o último nó) justamente para inserir no fim sem percorrer a lista toda.
    O que é um nó órfão?
    É um nó que ninguém mais aponta, porque sua ligação de entrada foi religada sem cuidado. Ele fica inacessível e vira lixo na memória. Guardar as referências certas antes de religar, na ordem correta, evita deixar nós órfãos por engano.

    Fontes

    Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.