Insert linked list node at nth last position in java

Java program for Insert linked list node at nth last position in java. Here Problem description and explanation.

// Java program for
// Insert linked list node at nth last position 

// Linked list node
class LinkNode
{
    public int data;
    public LinkNode next;
    public LinkNode(int data)
    {
        this.data = data;
        this.next = null;
    }
}
public class LinkedList
{
    public LinkNode head;
    public LinkedList()
    {
        this.head = null;
    }
    // insert node at end position
    public void insert(int value)
    {
        // Create a new node
        LinkNode node = new LinkNode(value);
        if (this.head == null)
        {
            this.head = node;
        }
        else
        {
            LinkNode temp = this.head;
            // Find the last node
            while (temp.next != null)
            {
                // Visit to next node
                temp = temp.next;
            }
            // Add node
            temp.next = node;
        }
    }
    // Display linked list element
    public void display()
    {
        if (this.head == null)
        {
            return;
        }
        LinkNode temp = this.head;
        // iterating linked list elements
        while (temp != null)
        {
            System.out.print(temp.data + " → ");
            // Visit to next node
            temp = temp.next;
        }
        System.out.println("NULL");
    }
    // Add node at specific position from the end of linked list
    public void endPosition(int position, int value)
    {
        if (this.head == null)
        {
            System.out.println("Empty Linked list");
        }
        else if (position <= 0)
        {
            System.out.println("Invalid position");
        }
        else
        {
            LinkNode temp = head;
            LinkNode location = null;
            while (temp != null)
            {
                position--;
                if (position <= 0)
                {
                    if (location == null)
                    {
                        location = head;
                    }
                    else
                    {
                        location = location.next;
                    }
                }
                // visit to next node
                temp = temp.next;
            }
            if (position <= 1)
            {
                LinkNode node = new LinkNode(value);
                if (location == null)
                {
                    // Add node at first place
                    node.next = this.head;
                    this.head = node;
                }
                else
                {
                    // Add node at intermediate position
                    node.next = location.next;
                    location.next = node;
                }
            }
            else
            {
                System.out.println("Opps position not found");
            }
        }
    }
    public static void main(String[] args)
    {
        LinkedList sll = new LinkedList();
        // Add node
        sll.insert(5);
        sll.insert(4);
        sll.insert(3);
        sll.insert(2);
        sll.insert(1);
        sll.display();
        int position = 2;
        int data = 10;
        sll.endPosition(position, data);
        System.out.println(" Add " + data + " at last " + 
                           position + "-nd position");
        sll.display();
    }
}

Output

java add linked list node at nth last position
5 → 4 → 3 → 2 → 1 → NULL
 Add 10 at last 2-nd position
5 → 4 → 3 → 2 → 10 → 1 → NULL


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved