w3resource

Python Linked List: Print a given doubly linked list in reverse order


11. Print Doubly Linked List in Reverse

Write a Python program to print a given doubly linked list in reverse order.

Sample Solution:

Python Code:

class Node(object):
    # Singly linked node
    def __init__(self, data=None, next=None, prev=None):
        self.data = data
        self.next = next
        self.prev = prev

class doubly_linked_list(object):
    def __init__(self):
        self.head = None
        self.tail = None
        self.count = 0

    def append_item(self, data):
        # Append an item 
        new_item = Node(data, None, None)
        if self.head is None:
            self.head = new_item
            self.tail = self.head
        else:
            new_item.prev = self.tail
            self.tail.next = new_item
            self.tail = new_item
        self.count += 1
    
    def iter(self):
        # Iterate the list
        current = self.head
        while current:
            item_val = current.data
            current = current.next
            yield item_val

    def print_foward(self):
        for node in self.iter():
            print(node)   
        
    def reverse(self):
        """ Reverse linked list. """
        current = self.head
        while current:
            temp = current.next
            current.next = current.prev
            current.prev = temp
            current = current.prev
        temp = self.head
        self.head = self.tail
        self.tail = temp

items = doubly_linked_list()
items.append_item('PHP')
items.append_item('Python')
items.append_item('C#')
items.append_item('C++')
items.append_item('Java')
items.append_item('SQL')

print("Reverse list ")
items.reverse()
items.print_foward()

Sample Output:

Reverse list 
SQL
Java
C++
C#
Python
PHP

Flowchart:

Flowchart: Print a given doubly linked list in reverse order.

For more Practice: Solve these Related Problems:

  • Write a Python program to traverse a doubly linked list from tail to head and print each node’s value.
  • Write a Python script to implement a function that prints the elements of a doubly linked list in reverse order using a while loop.
  • Write a Python program to output a doubly linked list in reverse order and then return the reversed list as an array.
  • Write a Python function to recursively print a doubly linked list in reverse and verify the output by comparing it with the forward iteration.

Go to:


Previous: Write a Python program to count the number of items of a given doubly linked list.
Next: Write a Python program to insert an item in front of a given doubly linked list.

Python Code Editor:

Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.