Implementation of Doubly Linked List in JavaScript

This article will demonstrate the Implementation of Doubly Linked List In JavaScript.
A doubly linked list (DLL) is a special type of linked list in which each node contains a pointer to the previous node as well as the next node of the linked list.
Doubly Linked List in JavaScript
To create we have to create the following classes:
- Node Class: To implement and create elements and link other elements.
- Doubly Linked List Class: To store and access all nodes of the list.
Doubly LinkedList Node is constructed of the following items
- A class named node
- A class constructor, and
- Data items/variables
- data: to contain respective node value
- next: to link the next node with the default value as null.
- prev: to link the previous node with the default value as null.
Example:
Javascript
// Doubly Linked list Node class Node { // Constructor to create a new node // next and prev is by default initialized as null constructor(val) { // To store the value this.data = val; // To link the next Node this.next = null; // TO link the previous Node this.prev = null; }} |
Doubly Linked List is constructed of the following items
- Class Named DoublyLinkedList
- A constructor to create the DLL
- Data items/variables:
- head: to store the starting node
- tail: to store the ending node
Example:
Javascript
// Doubly Linked Listclass DoublyLinkedList { // Constructor to create a new linked list constructor() { // To contain the first item of the list this.head = null; // To contain the last item of the list this.tail = null; }} |
Basic Operations in Doubly Linked Lists:
Method to Check if the List is Empty:
- Check if the head is null or not and return result
Javascript
// To check if the list is emptyisEmpty() { if (this.head == null) return true; return false;} |
Method to Insert Element:
- Create a new node with value as argument
- Check if the head is null insert at head
- Else insert the new node at the tail and shift tail pointer
Javascript
// Method to add item at the last of doubly linked listaddItem(val) { // Create a temporary variable let temp = new Node(val); // If the list is empty link assign // new node to both head and tail if (this.head == null) { this.head = temp; this.tail = temp; } // else add item to the tail and shift tail else { temp.prev = this.tail; this.tail.next = temp; this.tail = this.tail.next; }} |
To traverse and display the list:
- Check is the list is not null
- Use a current poiter to treaverse the list and display value using console.log()
Javascript
// To traverse and display the listdisplay() { // Check if the List is empty if (!this.isEmpty()) { // traverse the list using new current pointer let curr = this.head; while (curr !== null) { // Display element console.log(curr.data); // Shift the current pointer curr = curr.next; } }} |
Implementation of Doubly Linked List
Example: This example demonstrate the basic implementation of a link list.
Javascript
// Doubly Linked list Nodeclass Node { // Constructor to create a new node // next and prev is by default initialized as null constructor(val) { // To store the value this.data = val; // To link the next Node this.next = null; // TO link the previous Node this.prev = null; }}// Doubly Linked Listclass DoublyLinkedList { // Constructor to create a new linked list constructor() { // To contain the first item of the list this.head = null; // To contain the last item of the list this.tail = null; } // To check if the list is empty isEmpty() { if (this.head == null) return true; return false; } // Method to add item at the last of doubly linked list addItem(val) { // Create a temporary variable let temp = new Node(val); // If the list is empty link assign // new node to both head and tail if (this.head == null) { this.head = temp; this.tail = temp; } // else add item to the tail and shift tail else { this.tail.next = temp; this.tail = this.tail.next; } } // To traverse and display the list display() { // Check if the List is empty if (!this.isEmpty()) { // traverse the list using new current pointer let curr = this.head; while (curr !== null) { // Display element console.log(curr.data); // Shift the current pointer curr = curr.next; } } }}// Create new Doubly Linked List const dll = new DoublyLinkedList();// Add elements in the listdll.addItem(25);dll.addItem(27);dll.addItem(17);dll.addItem(29);// Display the listdll.display(); |
Output
25 27 17 29
Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, zambiatek Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!




