Find middle element of Linked List in JS

Find middle element in Linked List in Javascript

Data Structure, Featured, Javascript, Linked List, Trending

In this post we are going to find the middle of any Linked List . This is a very popular question ask by the interviewers .

Lets start by creating a Linked List in javascript. For that you can check my previous post

Create Linked List and Remove node in Javascript

So lets move ahead. To find a middle element please refer to the below program.

findMiddle() {
        let pointer = this.head;
        let fastPointer = this.head;

        while (pointer.next != null && fastPointer.next && fastPointer.next.next != null) {
            pointer = pointer.next;
            fastPointer = fastPointer.next.next
        }

        return pointer.data;
    }

If its hard for you to integrate the above method in Linked List program. Here is the whole program. Try to run it directly.

class Node {
    constructor(data) {
        this.data = data;
        this.next = null;
    }
}

class LinkedList {
    constructor(head = null) {
        this.head = head;
    }

    add(data) {
        let node = new Node(data);

        if (this.head == null)
            this.head = node;
        else {
            let current = this.head;
            while (current.next) {
                current = current.next;
            }
            current.next = node;
        }
    }

    findMiddle() {
        let pointer = this.head;
        let fastPointer = this.head;

        while (pointer.next != null && fastPointer.next && fastPointer.next.next != null) {
            pointer = pointer.next;
            fastPointer = fastPointer.next.next
        }

        return pointer.data;
    }
}

let ll = new LinkedList();

ll.add(10);
ll.add(20);
ll.add(30);
ll.add(40);
ll.add(50);
//console.log(JSON.stringify(ll))
let middle = ll.findMiddle();
console.log(middle);

Leave a Reply