Java: Remove the nth element from the end of a given list
Remove Nth Element from End
Write a Java program to remove the nth element from the end of a given list.
Pictorial Presentation:
Sample Solution:
Java Code:
import java.util.*;
public class Solution {
public static void main(String[] args) {
// Create a linked list with five nodes (1, 2, 3, 4, 5)
ListNode h = new ListNode(1);
h.next = new ListNode(2);
h.next.next = new ListNode(3);
h.next.next.next = new ListNode(4);
h.next.next.next.next = new ListNode(5);
// Copy the original linked list to 'o' for display
ListNode o = h;
System.out.println("Original node:");
// Display the original linked list
while (o != null) {
System.out.print(o.val + " ");
o = o.next;
}
System.out.println("\nAfter removing 2nd element from end:");
// Call the removeNthFromEnd function and print the modified linked list
ListNode head = removeNthFromEnd(h, 2);
while (head != null) {
System.out.print(head.val + " ");
head = head.next;
}
}
public static ListNode removeNthFromEnd(ListNode head, int n) {
ListNode p = head;
int size = 0;
// Calculate the size of the linked list
while (p != null) {
size++;
p = p.next;
}
// Check if the element to remove is the first one
if (n == size) {
head = head.next;
} else {
int index = size - n;
ListNode t = head;
// Traverse to the node before the one to remove
while (index > 1) {
t = t.next;
index--;
}
// Update the 'next' reference to skip the node to remove
t.next = t.next.next;
}
return head; // Return the modified linked list
}
}
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
this.next = null;
}
}
Sample Output:
Original node: 1 2 3 4 5 After removing 2nd element from end: 1 2 3 5
Flowchart:
For more Practice: Solve these Related Problems:
- Write a Java program to remove every nth node from a linked list.
- Write a Java program to remove the nth node from the end of a linked list in a single pass.
- Write a Java program to remove the nth node from the end of a circular linked list.
- Write a Java program to remove the nth node from the end of a linked list when the size of the list is unknown.
Go to:
PREV : Remove Element in Array.
NEXT : Array to Minimal Height BST.
Java Code Editor:
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.