我想通过使用另一个堆栈来反转形式为java.util.Stack
的java中的堆栈。我知道我可以将stack 1
的最高元素推到stack 2
,而stack 2
将具有stack 1
的相反元素。但是这个问题要求我在stack 1
本身而不是stack 2
中反映答案。我也不能使用更多的堆栈。如何在stack 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);
,其效果基本相同