JAVA:
import java.util.Stack;
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(stack2.isEmpty()){
while(!stack1.isEmpty())
stack2.push(stack1.pop());
}
return stack2.pop();
}
}
C++:
C++发现了很有意思的地方,下面这个在JAVA中的习惯是不对的。
C++中的pop是弹出删除,不能赋值?
反正如果在C++中
stack2.push(stack1.pop());
运行不了。
只有分为
int cnb;
cnb =stack1.
top(); stack2.
push(cnb);
stack1.pop();
what are u fucking doing
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if(stack2.empty()){
while(!stack1.empty())
stack2.push(stack1.pop());
}
return stack2.pop();
}
private:
stack<int> stack1;
stack<int> stack2;
};
下面是对的
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
int cnb;
if(stack2.empty()){
while(!stack1.empty()){
cnb =stack1.top();
stack2.push(cnb);
stack1.pop();
}
}
cnb =stack2.top();
stack2.pop();
return cnb;
}
private:
stack<int> stack1;
stack<int> stack2;
};