Find Middle Element
If we want to find middle element of a linked list in one pass, we need to store middle element only when current index can be divided by 2.
Lets create a linked list that know its first and last element.
class LinkedList<T> {
private Node<T> head;
private Node<T> tail;
public LinkedList() {
head = new Node<>(null);
tail = head;
}
public Node<T> head() {
return head;
}
public void add(Node<T> node) {
tail.setNext(node);
tail = node;
}
}
class Node<T> {
private Node<T> next;
private T value;
public Node(T value) {
this.value = value;
}
public Node<T> getNext() {
return next;
}
public void setNext(Node<T> next) {
this.next = next;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
@Override
public String toString() {
return value.toString();
}
}Then we create the linked list, put there few items and find the middle element.
Last updated
Was this helpful?