Doubly linked lists are lists where each node contains a pointer to the next node and previous node. Each node stores data and pointers to the next and previous nodes. Finding a node requires searching the list using the next pointers until the desired node is found or the end is reached. Inserting a node involves finding the correct location and adjusting the next and previous pointers of the neighboring nodes. Headers and trailers can simplify insertion and deletion by avoiding special cases for the first and last nodes. Large integers can be represented using a special linked list implementation that treats each digit as a node.