You learned that linked structures trade random access for flexible sizing. Arrays let you jump to any index instantly but have fixed size. Linked lists grow and shrink easily but require walking from the head to find elements.
Self-referential structures are flexible. They enable trees, graphs, and other complex data structures. The pointer is just an address; the struct can contain any number of pointers to create different topologies.
Freeing linked structures requires care. You must visit every node and delete it. If you lose the head pointer before freeing, you leak all the nodes.