#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node* prev;
Node* next;
};
int main() {
// existing list
Node* head = new Node{10, NULL, NULL};
head->next = new Node{20, head, NULL};
head->next->next = new Node{30, head->next, NULL};
head->next->next->next= new Node{45,head->next->next,NULL};
// ============= INSERT AT END =============
Node* temp = head;
// move to last node
while(temp->next != NULL) {
temp = temp->next;
}
// create new node at end
Node* last = new Node{40, temp, NULL};
temp->next = last;
// =========================================
// print forward
temp = head;
while(temp != NULL) {
cout << temp->data << " ";
temp = temp->next;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUqIHByZXY7CiAgICBOb2RlKiBuZXh0Owp9OwoKaW50IG1haW4oKSB7CiAgICAvLyBleGlzdGluZyBsaXN0CiAgICBOb2RlKiBoZWFkID0gbmV3IE5vZGV7MTAsIE5VTEwsIE5VTEx9OwogICAgaGVhZC0+bmV4dCA9IG5ldyBOb2RlezIwLCBoZWFkLCBOVUxMfTsKICAgIGhlYWQtPm5leHQtPm5leHQgPSBuZXcgTm9kZXszMCwgaGVhZC0+bmV4dCwgTlVMTH07CiAgICBoZWFkLT5uZXh0LT5uZXh0LT5uZXh0PSBuZXcgTm9kZXs0NSxoZWFkLT5uZXh0LT5uZXh0LE5VTEx9OwoKICAgIC8vID09PT09PT09PT09PT0gSU5TRVJUIEFUIEVORCA9PT09PT09PT09PT09CiAgICBOb2RlKiB0ZW1wID0gaGVhZDsKCiAgICAvLyBtb3ZlIHRvIGxhc3Qgbm9kZQogICAgd2hpbGUodGVtcC0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICB9CgogICAgLy8gY3JlYXRlIG5ldyBub2RlIGF0IGVuZAogICAgTm9kZSogbGFzdCA9IG5ldyBOb2RlezQwLCB0ZW1wLCBOVUxMfTsKICAgIHRlbXAtPm5leHQgPSBsYXN0OwogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAvLyBwcmludCBmb3J3YXJkCiAgICB0ZW1wID0gaGVhZDsKICAgIHdoaWxlKHRlbXAgIT0gTlVMTCkgewogICAgICAgIGNvdXQgPDwgdGVtcC0+ZGF0YSA8PCAiICI7CiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K