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 <bits/stdc++.h> using namespace std; // Defining structure class Node { public: int data; Node* next; }; // Function to check the length // of linklist int LinkedListLength(Node* head) { while (head && head->next) { head = head->next->next; } if (!head) return 0; return 1; } // Push function void push(Node** head, int info) { // Allocating node Node* node = new 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) { 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) { cout << "Even"; } else { cout << "Odd"; } return 0; } // This is code is contributed by rathbhupendra
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