Singly Linked List
Singly Linked List
#include <stdlib.h>
struct Node {
int data;
};
newNode->data = value;
newNode->next = head;
head = newNode;
return head;
newNode->data = value;
newNode->next = NULL;
if (head == NULL) {
return newNode;
current = current->next;
current->next = newNode;
return head;
newNode->data = value;
if (head == NULL) {
return newNode;
previous = current;
current = current->next;
if (previous == NULL) {
newNode->next = head;
head = newNode;
} else {
newNode->next = current;
previous->next = newNode;
return head;
if (head == NULL) {
return NULL;
free(temp);
return head;
if (head == NULL) {
return NULL;
if (head->next == NULL) {
free(head);
return NULL;
previous = current;
current = current->next;
}
free(current);
previous->next = NULL;
return head;
if (head == NULL) {
return NULL;
previous = current;
current = current->next;
if (current == NULL) {
return head;
}
if (previous == NULL) {
head = head->next;
} else {
previous->next = current->next;
free(current);
return head;
current = current->next;
printf("NULL\n");
current = current->next;
printf("\n");
int position = 0;
if (current->data == key) {
return position;
current = current->next;
position++;
return -1;
int main() {
struct Node* head = NULL;
do {
printf("\nMenu:\n");
printf("0. Exit\n");
scanf("%d", &choice);
switch (choice) {
case 1:
scanf("%d", &value);
case 2:
scanf("%d", &value);
break;
case 3:
scanf("%d", &key);
scanf("%d", &value);
break;
case 4:
head = deleteAtBeginning(head);
break;
case 5:
head = deleteAtEnd(head);
break;
case 6:
scanf("%d", &key);
break;
case 7:
display(head);
break;
case 8:
traverse(head);
break;
case 9:
scanf("%d", &key);
if (position != -1) {
} else {
break;
case 0:
break;
default:
}
} while (choice != 0);
return 0;