我试图解决轻编码问题:https://leetcode.com/problems/min-stack/
但我不知道为什么下面的代码不相同:
public void pop() {
// if (!minStack.isEmpty() && minStack.peek() == stack.peek()){
// minStack.pop();
// }
// stack.pop();
int x = stack.pop();
if (!minStack.isEmpty() && x == minStack.peek()) {
minStack.pop();
}
}
当我使用注释代码时,它会出错。这是为什么?
非常感谢你!
答案 0 :(得分:1)
如果您有一堆基元,那么两者都应该有效,因为您将使用==
比较内容。
我假设你有Integer
类型的堆栈,在这种情况下==
检查引用相等性,同时你应该检查value equality
。使用.equals()
可能只会解决您的问题。 :)