Untitled
unknown
plain_text
2 years ago
1.8 kB
4
Indexable
#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; // Function to insert a new node at the end of the linked list void insertAtEnd(struct Node** head_ref, int data) { struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); new_node->data = data; new_node->next = NULL; if (*head_ref == NULL) { *head_ref = new_node; return; } struct Node* temp = *head_ref; while (temp->next != NULL) { temp = temp->next; } temp->next = new_node; } // Function to delete the last node from the linked list void deleteLastNode(struct Node** head_ref) { if (*head_ref == NULL) { printf("Linked list is empty.\n"); return; } if ((*head_ref)->next == NULL) { free(*head_ref); *head_ref = NULL; return; } struct Node* temp = *head_ref; struct Node* prev = NULL; while (temp->next != NULL) { prev = temp; temp = temp->next; } free(temp); prev->next = NULL; } // Function to print the linked list void printLinkedList(struct Node* head) { struct Node* temp = head; while (temp != NULL) { printf("%d ", temp->data); temp = temp->next; } printf("\n"); } int main() { struct Node* head = NULL; // Insert nodes at the end of the linked list insertAtEnd(&head, 1); insertAtEnd(&head, 2); insertAtEnd(&head, 3); printf("Linked list after insertions: "); printLinkedList(head); // Delete the last node deleteLastNode(&head); printf("Linked list after deletion: "); printLinkedList(head); return 0; }
Editor is loading...