# Traverse Singly Linked Lists

## Introduction to Traversing Singly Linked Lists

Traversing a singly linked list involves visiting each node in the list in sequence to perform actions or retrieve data. This operation is fundamental for various linked list manipulations, including searching, updating, and displaying elements.

## Step-by-Step Process

Consider a singly linked list with the following structure:

```
Head -> 1 -> 2 -> 3 -> 4 -> None
```

To traverse this list, follow these steps:

**Start at the Head**: Begin traversal at the head of the list, which is the first node.**Visit the Current Node**: Perform any required action on the current node, such as printing its value.**Move to the Next Node**: Update the current node to the next node in the sequence by following the reference to the next node.**Repeat**: Continue this process until you reach the end of the list (i.e., a node with a reference to None).

Let's apply these steps to the example linked list:

- Start at the Head (node with value 1).
- Visit the current node (print 1).
- Move to the next node (node with value 2).
- Visit the current node (print 2).
- Move to the next node (node with value 3).
- Visit the current node (print 3).
- Move to the next node (node with value 4).
- Visit the current node (print 4).
- Move to the next node (None), end traversal.

## Python Program to Implement Traversal

```
class Node:
def __init__(self, data):
self.data = data
self.next = None
class SinglyLinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def traverse(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
# Example usage:
linked_list = SinglyLinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.append(4)
print("Traversal of the linked list:")
linked_list.traverse() # Output: 1 -> 2 -> 3 -> 4 -> None
```

This Python program defines a singly linked list with methods for appending nodes and traversing the list. The traverse method visits each node and prints its value in sequence.