Sakshi Singh
2 min readDec 29, 2018

HACKERRANK SOLUTION: Print in Reverse

import java.io.*;

import java.math.*;

import java.security.*;

import java.text.*;

import java.util.*;

import java.util.concurrent.*;

import java.util.regex.*;

public class Solution {

static class SinglyLinkedListNode {

public int data;

public SinglyLinkedListNode next;

public SinglyLinkedListNode(int nodeData) {

this.data = nodeData;

this.next = null;

}

}

static class SinglyLinkedList {

public SinglyLinkedListNode head;

public SinglyLinkedListNode tail;

public SinglyLinkedList() {

this.head = null;

this.tail = null;

}

public void insertNode(int nodeData) {

SinglyLinkedListNode node = new SinglyLinkedListNode(nodeData);

if (this.head == null) {

this.head = node;

} else {

this.tail.next = node;

}

this.tail = node;

}

}

public static void printSinglyLinkedList(SinglyLinkedListNode node, String sep) {

while (node != null) {

System.out.print(node.data);

node = node.next;

if (node != null) {

System.out.print(sep);

}

}

}

// Complete the reversePrint function below.

static void reversePrint(SinglyLinkedListNode head) {

SinglyLinkedListNode cur = head;

SinglyLinkedListNode prev = null;

SinglyLinkedListNode next = null;

while(cur!=null)

{

next = cur.next;

cur.next = prev;

prev = cur;

cur = next;

}

head = prev;

while(head!=null)

{

System.out.println(head.data);

head=head.next;

}

}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {

int tests = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

for (int testsItr = 0; testsItr < tests; testsItr++) {

SinglyLinkedList llist = new SinglyLinkedList();

int llistCount = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

for (int i = 0; i < llistCount; i++) {

int llistItem = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

llist.insertNode(llistItem);

}

reversePrint(llist.head);

}

scanner.close();

}

}

import java.io.*;

import java.math.*;

import java.security.*;

import java.text.*;

import java.util.*;

import java.util.concurrent.*;

import java.util.regex.*;

public class Solution {

static class SinglyLinkedListNode {

public int data;

public SinglyLinkedListNode next;

public SinglyLinkedListNode(int nodeData) {

this.data = nodeData;

this.next = null;

}

}

static class SinglyLinkedList {

public SinglyLinkedListNode head;

public SinglyLinkedListNode tail;

public SinglyLinkedList() {

this.head = null;

this.tail = null;

}

public void insertNode(int nodeData) {

SinglyLinkedListNode node = new SinglyLinkedListNode(nodeData);

if (this.head == null) {

this.head = node;

} else {

this.tail.next = node;

}

this.tail = node;

}

}

public static void printSinglyLinkedList(SinglyLinkedListNode node, String sep) {

while (node != null) {

System.out.print(node.data);

node = node.next;

if (node != null) {

System.out.print(sep);

}

}

}

// Complete the reversePrint function below.

/*

* For your reference:

*

* SinglyLinkedListNode {

* int data;

* SinglyLinkedListNode next;

* }

*

*/

static void reversePrint(SinglyLinkedListNode head) {

SinglyLinkedListNode cur = head;

SinglyLinkedListNode prev = null;

SinglyLinkedListNode next = null;

while(cur!=null)

{

next = cur.next;

cur.next = prev;

prev = cur;

cur = next;

}

head = prev;

while(head!=null)

{

System.out.println(head.data);

head=head.next;

}

}

private static final Scanner scanner = new Scanner(System.in);

public static void main(String[] args) {

int tests = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

for (int testsItr = 0; testsItr < tests; testsItr++) {

SinglyLinkedList llist = new SinglyLinkedList();

int llistCount = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

for (int i = 0; i < llistCount; i++) {

int llistItem = scanner.nextInt();

scanner.skip(“(\r\n|[\n\r\u2028\u2029\u0085])?”);

llist.insertNode(llistItem);

}

reversePrint(llist.head);

}

scanner.close();

}

}

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Sakshi Singh
Sakshi Singh

No responses yet

Write a response