linked lists linked lists can be thought of from high level perspective as being series of nodes each node has at least single pointer to the next nodeand in the last node' case null pointer representing that there are no more nodes in the linked list in dsa our implementations of linked lists always maintain head and tail pointers so that insertion at either the head or tail of the list is constant time operation random insertion is excluded from this and will be linear operation as suchlinked lists in dsa have the following characteristics insertion is ( deletion is ( searching is (nout of the three operations the one that stands out is that of insertion in dsa we chose to always maintain pointers (or more aptly referencesto the node(sat the head and tail of the linked list and so performing traditional insertion to either the front or back of the linked list is an ( operation an exception to this rule is performing an insertion before node that is neither the head nor tail in singly linked list when the node we are inserting before is somewhere in the middle of the linked list (known as random insertionthe complexity is (nin order to add before the designated node we need to traverse the linked list to find that node' current predecessor this traversal yields an (nrun time this data structure is trivialbut linked lists have few key points which at times make them very attractive the list is dynamically resizedthus it incurs no copy penalty like an array or vector would eventually incurand insertion is ( singly linked list singly linked lists are one of the most primitive data structures you will find in this book each node that makes up singly linked list consists of valueand reference to the next node (if anyin the list