void insertAtHead(node *&head, node* & tail, int d) {
node *temp = new node(d);
if (head == NULL) {
head = tail = temp;
} else {
head->prev = temp;
temp->next = head;
head = temp;
}
}
void insertAtHead(node *&head, node* & tail, int d) {
node *temp = new node(d);
if (head == NULL) {
head = tail = temp;
} else {
head->prev = temp;
temp->next = head;
head = temp;
}
}