Singly linked lists are data structures made up of nodes that contain data and a link to the next node. The nodes are not stored sequentially in memory. New nodes can be added by allocating a new node, filling its data field, and linking it to the next node. Nodes can be removed by linking the previous node's link to the node after the one being removed. Code examples demonstrate how to create a two node list and insert a new node in the middle.