import java.util.ArrayList; public class Reverse { private ArrayList reverse(ArrayList list) { if (list.size() <= 1) return list; else { int first = list.get(0); list.remove(0); // remove first element reverse(list).add(first); // append it to the end return list; } } public static void main(String args[]) { Reverse r = new Reverse(); ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); System.out.print("Original order:"); for (Integer i : numbers) System.out.printf("%2d", i); System.out.println(); numbers = r.reverse(numbers); System.out.print("Reversed order:"); for (Integer i : numbers) System.out.printf("%2d", i); System.out.println(); } }