Untitled
unknown
plain_text
2 years ago
1.8 kB
8
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...