data structures using this nodein steps and we change the next pointers in such way that the new node is inserted before the desired node start allocate memory for the new node and initialize its data part to initialize preptr and ptr to the start node start ptr preptr move ptr and preptr until the data part of ptr value of the node before which insertion has to be done preptr will always point to the node just before ptr start preptr ptr insert the new node in between the nodes pointed by preptr and ptr start preptr ptr new_node start figure inserting an element before given node in linked list deleting node from linked list in this sectionwe will discuss how node is deleted from an already existing linked list we will consider three cases and then see how deletion is done in each case case the first node is deleted case the last node is deleted case the node after given node is deleted before we describe the algorithms in all these three caseslet us first discuss an important term called underflow underflow is condition that occurs when we try to delete node from linked list that is empty this happens when start null or when there are no more nodes to delete note that when we delete node from linked listwe actually have to free the memory occupied by that node the memory is returned to the free pool so that it can be used to store other programs and data whatever be the case of deletionwe always change the avail pointer so that it points to the address that has been recently vacated deleting the first node from linked list consider the linked list in fig when we want to delete node from the beginning of the listthen the following changes will be done in the linked list