Java Exercises: Remove the nth element from the end of a given list

Java Basic: Exercise-145 with Solution

Write a Java program to remove the nth element from the end of a given list.

Pictorial Presentation:

Java Basic Exercises: Remove the nth element from the end of a given list.

Sample Solution:

Java Code:

import java.util.*;
public class Solution {
    public static void main(String[] args) {
        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);
		ListNode o = h;
		System.out.println("Original node:");
		while (o != null) {
            System.out.print(o.val + " ");
            o = o.next;
        System.out.println("\nAfter removing 2nd element from end:");
		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;
        while (p != null) {
            p = p.next;
        if (n == size) {  
            head = head.next;
        } else {
            int index = size - n;
            ListNode t = head;
            while (index > 1) {
                t = t.next;
            t.next = t.next.next;
        return head;
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: Java exercises: Remove the nth element from the end of a given list.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to remove all occurrences of a specified value in a given array of integers and return the new length of the array.
Next: Write a Java program to convert an sorted array to binary search tree. Maintain minimal height of the tree.

What is the difficulty level of this exercise?

Java: Tips of the Day

Try and catch:

Java is excellent at catching errors, but it can only recover gracefully if you tell it what to do. The cascading hierarchy of attempting to perform an action in Java starts with try, falls back to catch, and ends with finally. Should the try clause fail, then catch is invoked, and in the end, there's always finally to perform some sensible action regardless of the results. Here's an example:

try {
        cmd = parser.parse(opt, args); 
        if(cmd.hasOption("help")) {
                HelpFormatter helper = new HelpFormatter();
                helper.printHelp("Hello ", opt);
        else {
                if(cmd.hasOption("shell") || cmd.hasOption("s")) {
                String target = cmd.getOptionValue("tgt");
                } // else
        } // fi
} catch (ParseException err) {
        } //catch
        finally {
                new Hello().helloWorld(opt);
        } //finally
} //try

It's a robust system that attempts to avoid irrecoverable errors or, at least, to provide you with the option to give useful feedback to the user. Use it often, and your users will thank you!

Ref: https://red.ht/3EZc9OC