Programa C para escribir una función para eliminar una lista vinculada

Algoritmo para C:
iterar a través de la lista enlazada y eliminar todos los Nodes uno por uno. El punto principal aquí es no acceder al siguiente del puntero actual si se elimina el puntero actual.

Implementación:

C

// C program to delete a linked list
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
  
// Link list node 
struct Node
{
    int data;
    struct Node* next;
};
  
// Function to delete the entire 
// linked list 
void deleteList(struct Node** head_ref)
{
   // define head_ref to get the real head
   struct Node* current = *head_ref;
   struct Node* next;
  
   while (current != NULL) 
   {
       next = current->next;
       free(current);
       current = next;
   }
    
   // Define head_ref to affect the real 
   // head back in the caller. 
   *head_ref = NULL;
}
  
/* Given a reference (pointer to pointer) to 
   the head of a list and an int, push a new 
   node on the front of the list. */
void push(struct Node** head_ref, 
          int new_data)
{
    // Allocate node 
    struct Node* new_node =
           (struct Node*) malloc(sizeof(struct Node));
  
    // Put in the data  
    new_node->data  = new_data;
     
    // Link the old list off the new node 
    new_node->next = (*head_ref);
     
    // Move the head to point to the new node 
    (*head_ref)    = new_node;
}
  
// Driver code
int main()
{
    // Start with the empty list 
    struct Node* head = NULL;
     
    // Use push() to construct list
    // 1->12->1->4->1  
    push(&head, 1);
    push(&head, 4);
    push(&head, 1); 
    push(&head, 12);
    push(&head, 1);   
     
    printf("Deleting linked list");
    deleteList(&head);  
     
    printf("Linked list deleted");
}

Producción:

Deleting linked list
Linked list deleted

Complejidad temporal: O(n) 
Espacio auxiliar: O(1)

Consulte el artículo completo sobre Escribir una función para eliminar una lista vinculada 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 *