Faça uma função para retornar o número de nós da lista que possuem valor maior que n.

Passo 1

O enunciado pede uma função que, dada uma lista simplesmente ligada e um valor inteiro n, retorne quantos nós dessa lista têm seu campo valor maior que n. O conteúdo aqui é percorrer uma lista ligada e acumular um contador quando a comparação for verdadeira.

Passo 2

Vamos definir a assinatura da função, assumir que cada nó é do tipo “No” com campos “valor” e “next”. Inicializamos um contador count = 0 e um ponteiro auxiliar apontando para o início da lista.

Passo 3

Fazemos um laço enquanto o ponteiro auxiliar (chamado aqui de “current”) não for nulo: a cada iteração, comparamos current->valor com n. Se for maior, incrementamos o contador.

Passo 4

Ao final do laço, retornamos o valor de count, que já contém a quantidade de nós cujo valor excede n.

Resposta

int contarNosMaiores(No* head, int n) {
    int count = 0;
    No* current = head;
    while (current != NULL) {
        if (current->valor > n) {
            count++;
        }
        current = current->next;
    }
    return count;
}

Exercícios relacionados