-1

I can only output it to

12345

54321

how can i ask user to input size of nodes and put elements depending on the size of node

it should be like this:

Sample Output:

Input the number of nodes : 3

Input data for node 1 : 5

Input data for node 2 : 6

Input data for node 3 : 7

Data entered in the list are : 5 6 7

The list in reverse are : 7 6 5

public class LinkedList 
{
    private Node head;
    private Node current;
    
    private static class Node
    {
        private int data;
        private Node next;
        
        public Node(int data)
        {
            this.data = data;
            this.next = null;
        }
    }
    
    
    public void display()
    {
        Node current = head;
        while (current != null)
        {
            System.out.print(current.data + " ");
            current = current.next;
        }
        System.out.println("null");
    }
    
    
    public void reverse()
    {
        Node next = head;
        Node previous = null;
        current = null;
        
        while(next != null)
        {
            current = next;
            next = next.next;
            
            current.next = previous;
            previous = current;
            head = current;
        }
    }
    
    
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        
        LinkedList list = new LinkedList();
        
        System.out.print("Eneter number of nodes: ");
        int size = sc.nextInt();
        
        //this is the part where I need a user input
        //for node size and put elements in each nodes

        list.head = new Node(1);
        Node second = new Node(2);
        Node third = new Node(3);
        Node fourth = new Node(4);
        Node fifth = new Node(5);
        
        list.head.next = second;
        second.next = third;
        third.next = fourth;
        fourth.next = fifth;
        
        
        list.display();
        
        list.reverse();
        
        list.display();
        
        
    }
}
Nico Ni
  • 15
  • 3
  • 1
    Does this answer your question? [How to get the user input in Java?](https://stackoverflow.com/questions/5287538/how-to-get-the-user-input-in-java) – Timothy James Sep 23 '21 at 18:50

1 Answers1

0

You can create an insert method to handle insertion easily

public class LinkedList {

    private static class Node {
        private final int data;
        private Node next;

        public Node(int data) {
            this.data = data;
        }
    }

    private Node root;

    public LinkedList() {
        this.root = null;
    }

    public void insert(int value) {
        if (root == null) {
            root = new Node(value);
            return;
        }

        Node head = root;
        while (head.next != null) head = head.next;
        head.next = new Node(value);
    }

    public void display() {
        Node current = root;
        while (current != null) {
            System.out.print(current.data + " ");
            current = current.next;
        }
        System.out.println();
    }

    public void reverse() {
        Node next = root;
        Node previous = null;
        Node current;

        while (next != null) {
            current = next;
            next = next.next;

            current.next = previous;
            previous = current;
            root = current;
        }
    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        LinkedList list = new LinkedList();

        System.out.print("Enter number of nodes: ");
        int size = sc.nextInt();

        for(int i = 0; i < size ; i++) {
            System.out.print("Input data for node " + i + ": ");
            list.insert(sc.nextInt());
        }

        list.display();
        list.reverse();
        list.display();
    }
}
AmrDeveloper
  • 3,826
  • 1
  • 21
  • 30
  • ty kind sir i will try it. my teachers dont teach stuff anymore – Nico Ni Sep 24 '21 at 05:29
  • You are welcome, it you need more explanation you can search for LinkedList Implementation in Java, or check this link, Good Luck https://www.geeksforgeeks.org/implementing-a-linked-list-in-java-using-class/ – AmrDeveloper Sep 24 '21 at 09:40