w3resource

Python Linked List: Create a doubly linked list and print nodes from current position to first node


9. Doubly Linked List Backward from Current

Write a Python program to create a doubly linked list and print nodes from current position to first node.

Sample Solution:

Python Code:

class Node(object):
    # Doubly 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 print_foward(self):
        for node in self.iter():
            print(node)

    def print_backward(self):
        current = self.tail
        while current:
            print(current.data)
            current = current.prev
            
    def iter(self):
        # Iterate the list
        current = self.head
        while current:
            item_val = current.data
            current = current.next
            yield item_val

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

print("Print Items in the Doubly linked backwards:")
items.print_backward()

Sample Output:

Print Items in the Doubly linked backwards:
Java
C++
C#
Python
PHP

Flowchart:

Flowchart: Create a doubly linked list and print nodes from current position to first node.

For more Practice: Solve these Related Problems:

  • Write a Python program to set a pointer to a middle node in a doubly linked list and then iterate backward to the head, printing each node.
  • Write a Python script to traverse a doubly linked list in reverse starting from a given node and count the nodes encountered.
  • Write a Python program to implement a function that, given a node, prints all preceding node values in reverse order using the previous pointers.
  • Write a Python function to start from a specified node in a doubly linked list and traverse backward, outputting the reversed sequence as a list.

Go to:


Previous: Write a Python program to create a doubly linked list, append some items and iterate through the list (print forward).
Next: Write a Python program to count the number of items 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.