请问这样实现是正确的吗?
public void push(int x){
stack.add(x);
}
public int pop(){
Stack<Integer> stack2 = new Stack<>();
while (stack.size()>1){
stack2.add(stack.pop());
}
int ret=stack.pop();
for(int i=0;i<stack2.size();i++){
stack.add(stack2.pop());
}
return ret;
}
28
收起
正在回答 回答被采纳积分+1
1回答
liuyubobobo
2020-09-06 18:17:08
pop 的思路虽然可以,但是这样做 pop 是固定 O(n) 级别复杂度的,性能较差。提交给 leetcode 试试看?
另外,你的实现中,
for(int i=0;i<stack2.size();i++){ stack.add(stack2.pop()); }
无法做到把 stack2 的所有元素放入 stack,想象看为什么?
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星