sec lists curr (acurr it (bfigure doubly linked list removal element it stores the element of the node being removed then the nodes to either side have their pointers adjusted the only disadvantage of the doubly linked list as compared to the singly linked list is the additional space used the doubly linked list requires two pointers per nodeand so in the implementation presented it requires twice as much overhead as the singly linked list example there is space-saving technique that can be employed to eliminate the additional space requirementthough it will complicate the implementation and be somewhat slower thusthe technique is an example of space/time tradeoff it is based on observing thatif we store the sum of two valuesthen we can get either value back by subtracting the other that isif we store in variable cthen and of courseto recover one of the values out of the stored summationthe other value must be supplied pointer to the first node in the listalong with the value of one of its two link fieldswill allow access to all of the remaining nodes of the list in order this is because the pointer to the node must be the same as the value of the following node' prev pointeras well as the previous node' next pointer it is possible to move down the list breaking apart the summed link fields as though you were opening zipper details for implementing this variation are left as an exercise the principle behind this technique is worth rememberingbecause it has many applications the following code fragment will swap the contents of two variables without using temporary variable (at the cost of three arithmetic operations