This is a Python program to reverse a linked list.
The program creates a linked list and reverses it.
1. Create a class Node with instance variables data and next.
2. Create a class LinkedList with instance variables head and last_node.
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.
5. The method append takes a data item as argument and appends a node with that data item to the list.
6. The method display traverses the list from the first node and prints the data of each node.
7. Define a function reverse_llist which takes a linked list as argument and reverses it.
8. The function reverse_llist iterates through the list using three pointers to reverse it.
9. Create an instance of LinkedList, reverse the list and display it.
Here is the source code of a Python program to reverse a linked list. The program output is shown below.
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None self.last_node = None def append(self, data): if self.last_node is None: self.head = Node(data) self.last_node = self.head else: self.last_node.next = Node(data) self.last_node = self.last_node.next def display(self): current = self.head while current: print(current.data, end = ' ') current = current.next def reverse_llist(llist): before = None current = llist.head if current is None: return after = current.next while after: current.next = before before = current current = after after = after.next current.next = before llist.head = current a_llist = LinkedList() data_list = input('Please enter the elements in the linked list: ').split() for data in data_list: a_llist.append(int(data)) reverse_llist(a_llist) print('The reversed list: ') a_llist.display()
1. An instance of LinkedList is created.
2. The user is prompted to enter the data items for the list.
3. The function reverse_llist is called to reverse the list.
4. The linked list is displayed.
Case 1: Please enter the elements in the linked list: 7 1 30 4 The reversed list: 4 30 1 7 Case 2: Please enter the elements in the linked list: 3 The reversed list: 3 Case 3: Please enter the elements in the linked list: 1 2 The reversed list: 2 1
Sanfoundry Global Education & Learning Series – Python Programs.
To practice all Python programs, here is complete set of 150+ Python Problems and Solutions.
- Get Free Certificate of Merit in Python Programming
- Participate in Python Programming Certification Contest
- Become a Top Ranker in Python Programming
- Take Python Programming Tests
- Chapterwise Practice Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Chapterwise Mock Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Apply for Python Internship
- Practice Programming MCQs
- Buy Information Technology Books
- Apply for Programming Internship
- Buy Python Books