We create a singly linked list by first defining a Node class with a value and a next pointer set to null. The LinkedList class starts with head as null, meaning the list is empty. When we append a new value, we create a new node. If the list is empty (head is null), we set head to this new node. Otherwise, we start at head and move through each node's next pointer until we find the last node (where next is null). We then link this last node's next pointer to the new node. This process is repeated for each append call, building the list step by step. The visual state shows the nodes connected in order, ending with null to mark the list's end.