#include <iostream>
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
void deleteNode(ListNode* node) {
if (node == nullptr || node->next == nullptr) return;
ListNode* temp = node->next;
node->val = temp->val;
node->next = temp->next;
delete temp;
}
int main() {
// Example usage:
ListNode* head = new ListNode(4);
head->next = new ListNode(5);
head->next->next = new ListNode(1);
head->next->next->next = new ListNode(9);
ListNode* nodeToDelete = head->next; // Node with value 5 to be deleted
deleteNode(nodeToDelete);
// Print the modified linked list
ListNode* current = head;
while (current != nullptr) {
std::cout << current->val << " ";
current = current->next;
}
return 0;
}