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