#include <iostream>
using namespace std;
struct SinglyLinkedListNode {
int data;
SinglyLinkedListNode* next;
SinglyLinkedListNode(int val) {
data = val;
next = nullptr;
}
};
SinglyLinkedListNode* deleteNode(SinglyLinkedListNode* head, int position) {
if (!head) return nullptr;
if (position == 0) {
SinglyLinkedListNode* temp = head;
head = head->next;
delete temp;
return head;
}
SinglyLinkedListNode* current = head;
for (int i = 0; i < position - 1 && current->next; i++) {
current = current->next;
}
if (current->next) {
SinglyLinkedListNode* temp = current->next;
current->next = temp->next;
delete temp;
}
return head;
}
void printList(SinglyLinkedListNode* head) {
while (head) {
cout << head->data << " ";
head = head->next;
}
cout << endl;
}
int main() {
SinglyLinkedListNode* head = new SinglyLinkedListNode(10);
head->next = new SinglyLinkedListNode(20);
head->next->next = new SinglyLinkedListNode(30);
head->next->next->next = new SinglyLinkedListNode(40);
int position = 2;
head = deleteNode(head, position);
printList(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFNpbmdseUxpbmtlZExpc3ROb2RlIHsKICAgIGludCBkYXRhOwogICAgU2luZ2x5TGlua2VkTGlzdE5vZGUqIG5leHQ7CgogICAgU2luZ2x5TGlua2VkTGlzdE5vZGUoaW50IHZhbCkgewogICAgICAgIGRhdGEgPSB2YWw7CiAgICAgICAgbmV4dCA9IG51bGxwdHI7CiAgICB9Cn07CgpTaW5nbHlMaW5rZWRMaXN0Tm9kZSogZGVsZXRlTm9kZShTaW5nbHlMaW5rZWRMaXN0Tm9kZSogaGVhZCwgaW50IHBvc2l0aW9uKSB7CiAgICBpZiAoIWhlYWQpIHJldHVybiBudWxscHRyOwoKICAgIGlmIChwb3NpdGlvbiA9PSAwKSB7CiAgICAgICAgU2luZ2x5TGlua2VkTGlzdE5vZGUqIHRlbXAgPSBoZWFkOwogICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgICAgIGRlbGV0ZSB0ZW1wOwogICAgICAgIHJldHVybiBoZWFkOwogICAgfQoKICAKICAgIFNpbmdseUxpbmtlZExpc3ROb2RlKiBjdXJyZW50ID0gaGVhZDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcG9zaXRpb24gLSAxICYmIGN1cnJlbnQtPm5leHQ7IGkrKykgewogICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0OwogICAgfQoKICAgIGlmIChjdXJyZW50LT5uZXh0KSB7CiAgICAgICAgU2luZ2x5TGlua2VkTGlzdE5vZGUqIHRlbXAgPSBjdXJyZW50LT5uZXh0OwogICAgICAgIGN1cnJlbnQtPm5leHQgPSB0ZW1wLT5uZXh0OwogICAgICAgIGRlbGV0ZSB0ZW1wOwogICAgfQoKICAgIHJldHVybiBoZWFkOwp9CgoKdm9pZCBwcmludExpc3QoU2luZ2x5TGlua2VkTGlzdE5vZGUqIGhlYWQpIHsKICAgIHdoaWxlIChoZWFkKSB7CiAgICAgICAgY291dCA8PCBoZWFkLT5kYXRhIDw8ICIgIjsKICAgICAgICBoZWFkID0gaGVhZC0+bmV4dDsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAKICAgIFNpbmdseUxpbmtlZExpc3ROb2RlKiBoZWFkID0gbmV3IFNpbmdseUxpbmtlZExpc3ROb2RlKDEwKTsKICAgIGhlYWQtPm5leHQgPSBuZXcgU2luZ2x5TGlua2VkTGlzdE5vZGUoMjApOwogICAgaGVhZC0+bmV4dC0+bmV4dCA9IG5ldyBTaW5nbHlMaW5rZWRMaXN0Tm9kZSgzMCk7CiAgICBoZWFkLT5uZXh0LT5uZXh0LT5uZXh0ID0gbmV3IFNpbmdseUxpbmtlZExpc3ROb2RlKDQwKTsKCiAgICBpbnQgcG9zaXRpb24gPSAyOwogICAgaGVhZCA9IGRlbGV0ZU5vZGUoaGVhZCwgcG9zaXRpb24pOwoKICAgIHByaW50TGlzdChoZWFkKTsgCgogICAgcmV0dXJuIDA7Cn0K