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

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