A doubly linked list is one where each node keeps a pointer to the previous element on the list, as well as the next element.
Thus, on a doubly linked list, the next link of the first node points to the second node, while its previous link points to nil (also called NULL). Analogously, the next link of the last node points to nil, while its previous link points to the penultimate node of the doubly linked list.
The last figure of this chapter illustrates the addition of a node in a doubly linked list. As you can imagine, the main task that needs to be accomplished is dealing with the pointers of three nodes: the new node, the node that will be on the left of the new node, and the node that will be on the right of the new node.
Thus, in reality...