## Java MCQ: What is a Doubly Linked List in data structure?

### Answer:

### Explanation:

A Doubly Linked List is a type of linked list where each node contains a data field and two references: one pointing to the next node and another pointing to the previous node. This dual reference allows traversal in both forward and backward directions, making the doubly linked list more versatile than a singly linked list, where traversal is only possible in one direction.

The structure of a doubly linked list is particularly useful in applications where bidirectional traversal is required, such as in browser history navigation (moving forward and backward through visited pages) or implementing undo/redo functionality in software. The ability to traverse the list in both directions also makes operations like insertion and deletion at both ends more efficient.

Here’s an example of a Doubly Linked List in Java:

```
class Node {
int data;
Node next;
Node prev;
Node(int data) {
this.data = data;
this.next = null;
this.prev = null;
}
}
class DoublyLinkedList {
Node head;
public void add(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
} else {
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
newNode.prev = current;
}
}
}
```

In this example, each node has a reference to both its next and previous nodes. This structure allows easy traversal in both directions and makes operations like insertion, deletion, and searching more flexible.

### Reference links:

https://www.javaguides.net/p/java-doubly-linked-list-tutorial.html