import org.omg.CORBA.INTERNAL; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Stack; public class Main { public static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = sc.nextInt(); Stack<Integer> sta = new Stack<>(); for(int i=0;i<n;i++){ int val = sc.nextInt(); sta.push(val); } reverse(sta); print(sta); } static void print(Stack<Integer> sta){ List<Integer> rs = new ArrayList<>(); rs.addAll(sta); for(int i=0;i<rs.size();i++){ System.out.print(rs.get(i) + " "); } // System.out.println(); } static void reverse(Stack<Integer> sta){ if(sta.isEmpty()){ return; } int i = getAndRemoveLast(sta); // 把栈底取出来, 逆序完剩余的栈,再push栈底 reverse(sta); sta.push(i); } static int getAndRemoveLast(Stack<Integer> sta){ int topVal = sta.pop(); // 只有一个元素就return,否则一直递归 if(sta.isEmpty()){ return topVal; }else { // 递归处理 int last = getAndRemoveLast(sta); sta.push(topVal); return last; } } } /* 5 1 2 3 4 5 5 4 3 2 1 */