This document introduces doubly linked lists. A doubly linked list allows navigation in both directions by including a prev pointer in each node in addition to the next pointer found in singly linked lists. Each node contains data, a next pointer, and a prev pointer. The list also contains pointers to the first and last nodes. Basic operations on doubly linked lists include insertion and deletion at the beginning or end of the list as well as insertion or deletion after a specified node.