首页 > 解决方案 > java - 如何使用另一个堆栈反转java中的堆栈?

问题描述

我想java.util.Stack通过使用另一个堆栈来反转形式的java中的堆栈。我知道我可以将 to 的最顶部元素推stack 1stack 2并且stack 2会有stack 1. 但这个问题需要我反映答案stack 1本身而不是stack 2。我也不能使用更多的堆栈。如何逆转和反映被逆转的答案stack 1本身?

标签: java

解决方案


Stack s1 = new Stack();
Stack s2 = new Stack();

s1.add(1);
s1.add(2);
s1.add(3);
s1.add(4);

s2.add(s1.pop());
s2.add(s1.pop());
s2.add(s1.pop());
s2.add(s1.pop());

s1 = s2;

System.out.println(s1);

您没有说不允许重新分配堆栈变量。这样你就有了相反的顺序s1

另一种方法是使用Collections.reverse(s1);具有基本相同效果的


推荐阅读