A singly linked list gives each node one pointer, aimed at the next node. You can only walk forward, from head toward the tail. To reach the previous node you must restart from the head.
A doubly linked list adds a second pointer, aimed at the previous node. Now you can walk both directions. Deleting a node you already hold becomes easy, since you reach its neighbor on each side directly.
That power costs memory. Every node stores an extra pointer, so a million nodes carry a million more references. You also update two links on each insert instead of one. Pick singly when memory is tight and forward-only is enough. Pick doubly when you delete or scan backward often.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.