sec lists curr tail head figure initial state of linked list when using header node key design decision for the linked list implementation is how to represent the current position the most reasonable choices appear to be pointer to the current element but there is big advantage to making curr point to the element preceding the current element figure (ashows the list' curr pointer pointing to the current element the vertical line between the nodes containing and indicates the logical position of the current element consider what happens if we wish to insert new node with value into the list the result should be as shown in figure (bhoweverthere is problem to "splicethe list node containing the new element into the listthe list node storing must have its next pointer changed to point to the new node unfortunatelythere is no convenient access to the node preceding the one pointed to by curr howeverif curr points directly to the preceding elementthere is no difficulty in adding new element after curr see exercise for further discussion of why making curr point directly to the current element fails unfortunatelywe encounter number of problems when the list is emptyor when the current position is at an end of the list in particularwhen the list is empty we have no element for headtailand curr to point to one solution is to implement number of special cases in the implementations for insert and remove this increases code complexitymaking it harder to understandand thus increases the chance of introducing programming bug these special cases can be eliminated by implementing linked lists with special header node as the first node of the list this header node is link node like any otherbut its value is ignored and it is not considered to be an actual element of the list the header node saves coding effort because we no longer need to consider special cases for empty lists or when the current position is at one end of the list the cost of this simplification is the space for the header node howeverthere are space savings due to smaller code sizebecause statements to handle the special cases are omitted in practicethis reduction in code size typically saves more space than that required for the header nodedepending on the number of lists created figure shows the state of an initialized or empty list when using header node figure shows the insertion example of figure using header node and the convention that curr points to the node preceding the current node