#include <iostream>
using namespace std;
class Node{
public:
Node* next;
int data;
};
void push(Node** head_ref, int new_data){
Node* new_node= new Node();
new_node-> data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
void deleteNode(Node** head_ref, int position){
Node* temp = *head_ref;
if(temp == NULL){
return;
}
if(position == 0){
*head_ref = temp->next;
free(temp);
return;
}
for(int i=0; temp != NULL && i<position-1;i++){
temp = temp->next;
}
if(temp== NULL || temp->next == NULL){
return;
}
Node* next = temp->next->next;
free(temp->next);
temp ->next = next;
}
void printList(Node* node){
while(node != NULL){
cout<< node-> data<<" ";
node = node->next;
}
}
int main() {
// your code goes here
Node* head =NULL;
push(&head , 19);
push(&head , 190);
push(&head , 191);
push(&head , 1900);
push(&head , 19000);
cout<<"original list: "<<endl;
printList(head);
cout<<endl;
cout<<"Patterned List:"<<endl;
deleteNode(&head , 2);
printList(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBOb2RlewoJcHVibGljOgoJTm9kZSogbmV4dDsKCWludCBkYXRhOwoJCn07CnZvaWQgcHVzaChOb2RlKiogaGVhZF9yZWYsIGludCBuZXdfZGF0YSl7CglOb2RlKiBuZXdfbm9kZT0gbmV3IE5vZGUoKTsKCW5ld19ub2RlLT4gZGF0YSA9IG5ld19kYXRhOwoJbmV3X25vZGUtPm5leHQgPSAoKmhlYWRfcmVmKTsKCSgqaGVhZF9yZWYpID0gbmV3X25vZGU7Cn0KCnZvaWQgZGVsZXRlTm9kZShOb2RlKiogaGVhZF9yZWYsIGludCBwb3NpdGlvbil7CglOb2RlKiB0ZW1wID0gKmhlYWRfcmVmOwoJaWYodGVtcCA9PSBOVUxMKXsKCQlyZXR1cm47Cgl9CglpZihwb3NpdGlvbiA9PSAwKXsKCQkqaGVhZF9yZWYgPSB0ZW1wLT5uZXh0OwoJCWZyZWUodGVtcCk7CgkJcmV0dXJuOwoJfQoJZm9yKGludCBpPTA7IHRlbXAgIT0gTlVMTCAmJiBpPHBvc2l0aW9uLTE7aSsrKXsKCQl0ZW1wID0gdGVtcC0+bmV4dDsKCX0KCWlmKHRlbXA9PSBOVUxMIHx8IHRlbXAtPm5leHQgPT0gTlVMTCl7CgkJcmV0dXJuOwoJfQoJTm9kZSogbmV4dCA9IHRlbXAtPm5leHQtPm5leHQ7CgkKCWZyZWUodGVtcC0+bmV4dCk7Cgl0ZW1wIC0+bmV4dCA9IG5leHQ7Cn0KCnZvaWQgcHJpbnRMaXN0KE5vZGUqIG5vZGUpewoJd2hpbGUobm9kZSAhPSBOVUxMKXsKCQljb3V0PDwgbm9kZS0+IGRhdGE8PCIgIjsKCQlub2RlID0gbm9kZS0+bmV4dDsKCX0KfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglOb2RlKiBoZWFkID1OVUxMOwoJCglwdXNoKCZoZWFkICwgMTkpOwoJcHVzaCgmaGVhZCAsIDE5MCk7CglwdXNoKCZoZWFkICwgMTkxKTsKCXB1c2goJmhlYWQgLCAxOTAwKTsKCXB1c2goJmhlYWQgLCAxOTAwMCk7CgkKCWNvdXQ8PCJvcmlnaW5hbCBsaXN0OiAiPDxlbmRsOwoJcHJpbnRMaXN0KGhlYWQpOwoJY291dDw8ZW5kbDsKCQoJY291dDw8IlBhdHRlcm5lZCBMaXN0OiI8PGVuZGw7CglkZWxldGVOb2RlKCZoZWFkICwgMik7CglwcmludExpc3QoaGVhZCk7CgkKCXJldHVybiAwOwp9