如何使用另一个堆栈反转Java中的堆栈?

时间:2018-07-03 12:16:59

标签: java

我想通过使用另一个堆栈来反转形式为java.util.Stack的java中的堆栈。我知道我可以将stack 1的最高元素推到stack 2,而stack 2将具有stack 1的相反元素。但是这个问题要求我在stack 1本身而不是stack 2中反映答案。我也不能使用更多的堆栈。如何在stack 1本身中反转和反映反转的答案?

1 个答案:

答案 0 :(得分:0)

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);,其效果基本相同