#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
void traverseAndPrint(Node* head) {
Node* currentNode = head;
while (currentNode != NULL) {
printf("%d -> ", currentNode->data);
currentNode = currentNode->next;
}
printf("null\n");
}
Node* deleteSpecificNode(Node* head, Node* nodeToDelete) {
if (head == nodeToDelete) {
Node* newHead = head->next;
free(head);
return newHead;
}
Node* currentNode = head;
while (currentNode->next && currentNode->next != nodeToDelete) {
currentNode = currentNode->next;
}
if (currentNode->next == NULL) {
return head;
}
Node* temp = currentNode->next;
currentNode->next = currentNode->next->next;
free(temp);
return head;
}
int main() {
Node* node1 = malloc(sizeof(Node));
node1->data = 7;
Node* node2 = malloc(sizeof(Node));
node2->data = 11;