# Python Program to Find Middle Element of a Linked List

This is a Python program to print the middle node(s) of a linked list.

Problem Description

The program creates a linked list using data items input from the user and prints the middle node(s) of the linked list.

Problem Solution

1. Create a class Node with instance variables data and next.
3. The variable head points to the first element in the linked list while last_node points to the last.
4. Define methods append and display inside the class LinkedList to append data and display the linked list respectively.
5. Define a function print_middle that prints the middle element(s) of the list.
6. The function print_middle iterates through the list to find its length and then iterates again to half its length. If the length of the list is even, it prints two middle elements.
7. Create an instance of LinkedList, append data to it and print its middle element(s).

Program/Source Code

Here is the source code of a Python program to print the middle element(s) of a linked list.

```class Node:
def __init__(self, data):
self.data = data
self.next = None

def __init__(self):
self.last_node = None

def append(self, data):
if self.last_node is None:
else:
self.last_node.next = Node(data)
self.last_node = self.last_node.next

def print_middle(llist):
length = 0
while current:
current = current.next
length = length + 1

for i in range((length - 1)//2):
current = current.next

if current:
if length % 2 == 0:
print('The two middle elements are {} and {}.'
.format(current.data, current.next.data))
else:
print('The middle element is {}.'.format(current.data))
else:
print('The list is empty.')

for data in data_list:
a_llist.append(int(data))

print_middle(a_llist)```
Program Explanation

1. An instances of LinkedList is created.
2. The user is prompted to enter the data items for the list.
3. The function print_middle is called to print the middle element(s) of the list.

Runtime Test Cases
```Case 1:
Please enter the elements in the linked list: 1 2 3 4 5 6 7 8
The two middle elements are 4 and 5.

Case 2:
The middle element is 5.

Case 3:
Please enter the elements in the linked list: 3 1 0 4 2
The middle element is 0.```

Sanfoundry Global Education & Learning Series – Python Programs.

To practice all Python programs, here is complete set of 150+ Python Problems and Solutions.

Sanfoundry Certification Contest of the Month is Live. 100+ Subjects. Participate Now!