Advantages, Disadvantages, and uses of Doubly Linked List Read Courses Practice Improve Improve Improve Like Article Like Save Article Save Report issue Report A Doubly Linked List(DLL) is a linear data structure that contains an extra pointer, typically called the previous pointer, together with the next pointer and data which are there in a singly linked list. Below is the image to illustrate the same. Advantages Of DLL: Reversing the doubly linked list is very easy. It can allocate or reallocate memory easily during its execution. As with a singly linked list, it is the easiest data structure to implement. The traversal of this doubly linked list is bidirectional which is not possible in a singly linked list. Deletion of nodes is easy as compared to a Singly Linked List. A singly linked list deletion requires a pointer to the node and previous node to be deleted but in the doubly linked list, it only required the pointer which is to be deleted.’ Doubly linked lists have a low overhead compared to other data structures such as arrays. Implementing graph algorithms. Disadvantages Of DLL: It uses extra memory when compared to the array and singly linked list. Since elements in memory are stored randomly, therefore the elements are accessed sequentially no direct access is allowed. Traversing a doubly linked list can be slower than traversing a singly linked list. Implementing and maintaining doubly linked lists can be more complex than singly linked lists. Uses Of DLL: It is used in the navigation systems where front and back navigation is required. It is used by the browser to implement backward and forward navigation of visited web pages that is a back and forward button. It is also used to represent a classic game deck of cards. It is also used by various applications to implement undo and redo functionality. Doubly Linked List is also used in constructing MRU/LRU (Most/least recently used) cache. Other data structures like stacks, Hash Tables, Binary trees can also be constructed or programmed using a doubly-linked list. Also in many operating systems, the thread scheduler(the thing that chooses what process needs to run at which time) maintains a doubly-linked list of all processes running at that time. Implementing LRU Cache. Implementing Graph algorithms. Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule. Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks! DSA in C++ DSA in Java DSA in Python DSA in JavaScript Commit to GfG's Three-90 Challenge! Purchase a course, complete 90% in 90 days, and save 90% cost click here to explore. Last Updated : 16 Feb, 2023 Like Article Save Article Previous Correct the Random Pointer in Doubly Linked List Next Power-of-Two Free Lists Allocators | Kernel Memory Allocators Share your thoughts in the comments Add Your Comment Please Login to comment...