Programa C para verificar si la longitud de la lista vinculada dada es par o impar

Dada una lista enlazada, la tarea es hacer una función que verifique si la longitud de la lista enlazada es par o impar. 
Ejemplos:

Input: 1->2->3->4->NULL
Output: Even

Input: 1->2->3->4->5->NULL
Output: Odd

Método 1: Cuente los códigos linealmente 
. Atraviese toda la lista enlazada y siga contando el número de Nodes. Tan pronto como finaliza el ciclo, podemos verificar si el conteo es par o impar. Puede intentarlo usted mismo.
Método 2: Escalonamiento de 2 Nodes a la vez  
Enfoque:

1. Take a pointer and move that pointer two nodes at a time
2. At the end, if the pointer is NULL then length is Even, else Odd.

C

// C program to check length 
// of a given linklist
#include<stdio.h>
#include<stdlib.h>
  
// Defining structure
struct Node
{
    int data;
    struct Node* next;
};
  
// Function to check the length 
// of linklist
int LinkedListLength(struct Node* head)
{
    while (head && head->next)
    {
        head = head->next->next;
    }
    if (!head)
        return 0;
    return 1;
}
      
// Push function
void push(struct Node** head, 
          int info)
{
    // Allocating node
    struct Node* node = 
          (struct Node*) malloc(sizeof(struct Node));
      
    // Info into node
    node->data = info;
      
    // Next of new node to head
    node->next = (*head);
  
    // head points to new node
    (*head) = node;
}
  
// Driver code
int main(void)
{
    struct Node* head = NULL;
      
    // Adding elements to Linked 
    // List
    push(&head, 4);
    push(&head, 5);
    push(&head, 7);
    push(&head, 2);
    push(&head, 9);
    push(&head, 6);
    push(&head, 1);
    push(&head, 2);
    push(&head, 0);
    push(&head, 5);
    push(&head, 5);
    int check = 
        LinkedListLength(head);
      
    // Checking for length of
    // linklist
    if(check == 0)
    {
        printf("Even");
    }
    else
    {
        printf("Odd");
    }
    return 0;
}

Producción:  

Odd

Complejidad de tiempo: O(n) 
Complejidad de espacio: O(1)

¡ Consulte el artículo completo sobre Comprobar si la longitud de la lista vinculada dada es par o impar para obtener más detalles!

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *