请问这样实现是正确的吗?
来源:3-3 作业解析:用栈实现队列
warren_au
2020-09-06 15:25:59
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;
}
1回答
liuyubobobo
2020-09-06
pop 的思路虽然可以,但是这样做 pop 是固定 O(n) 级别复杂度的,性能较差。提交给 leetcode 试试看?
另外,你的实现中,
for(int i=0;i<stack2.size();i++){ stack.add(stack2.pop()); }
无法做到把 stack2 的所有元素放入 stack,想象看为什么?
继续加油!:)
相似问题