Reverse a doubly linked list hackerrank solution java

Problem solution in Python programming.

#!/bin/python3 import math import os import random import re import sys class DoublyLinkedListNode: def __init__(self, node_data): self.data = node_data self.next = None self.prev = None class DoublyLinkedList: def __init__(self): self.head = None self.tail = None def insert_node(self, node_data): node = DoublyLinkedListNode(node_data) if not self.head: self.head = node else: self.tail.next = node node.prev = self.tail self.tail = node def print_doubly_linked_list(node, sep, fptr): while node: fptr.write(str(node.data)) node = node.next if node: fptr.write(sep) # Complete the reverse function below. # # For your reference: # # DoublyLinkedListNode: # int data # DoublyLinkedListNode next # DoublyLinkedListNode prev # # def reverse(head): if head == None or head.next == None: return head while True: temp = head.next head.next = head.prev head.prev = temp head = head.prev if head.next == None: break temp = head.next head.next = head.prev head.prev = temp return head if __name__ == '__main__': fptr = open(os.environ['OUTPUT_PATH'], 'w') t = int(input()) for t_itr in range(t): llist_count = int(input()) llist = DoublyLinkedList() for _ in range(llist_count): llist_item = int(input()) llist.insert_node(llist_item) llist1 = reverse(llist.head) print_doubly_linked_list(llist1, ' ', fptr) fptr.write('\n') fptr.close()





Java Solution For HackerRank Problem: Reverse a doubly linked list

12/11/2020bytebot

#java#codingchallenge#linked-list#hackerrank-solutions

Reverse a doubly linked list, is a HackerRank problem from Linked List subdomain. In this post we will see how we can solve this challenge in Java

Python Solution For HackerRank Problem: Reverse a doubly linked list

12/13/2020bytebot

#hackerrank-solutions#codingchallenge#python#data-structures#linked-list

Reverse a doubly linked list, is a HackerRank problem from Linked Lists subdomain. In this post we will see how we can solve this challenge in Python

Reverse a Doubly Linked List

Given a Doubly Linked List, the task is to reverse the given Doubly Linked List.

See below diagrams for example.

(a) Original Doubly Linked List

Reverse a doubly linked list hackerrank solution java

(b) Reversed Doubly Linked List

Reverse a doubly linked list hackerrank solution java

Here is a simple method for reversing a Doubly Linked List. All we need to do is swap prev and next pointers for all nodes, change prev of the head (or start) and change the head pointer in the end.