void insertAtPosition(node *&head, node *&tail, int position, int d) { // insert at start if (position == 1) { insertAtHead(head, tail, d); return; } node *temp = new node(d); node *curr = head; int cnt = 1; while (cnt < position - 1) { curr = curr->next; cnt++; } // insert at last if (curr->next == NULL) { insertAtTail(tail, head, d); return; } else { temp->next = curr->next; curr->next = temp; temp->prev = curr; curr->next->prev = temp; } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter