gpt4 book ai didi

java - 堆栈弹出功能

转载 作者:行者123 更新时间:2023-11-30 03:04:59 25 4
gpt4 key购买 nike

我正在 Leetcode 上解决一个算法问题,我发现这两个不同的 pop() 函数给了我不同的结果。 (当然其中之一是行不通的)我不明白有什么区别。为什么创建一个 int 可以工作,但另一个却不行?

public void pop() {
if ( minStack.peek() == mainStack.pop()) {
minStack.pop();
}
}

public void pop() {
int popValue = mainStack.pop();
if (minStack.peek() == popValue) {
minStack.pop();
}
}

最佳答案

区别在于指针。

一旦从堆栈中弹出一个元素,指针就会移动到堆栈中的下一个元素。在这种情况下,第一个代码是先查看然后弹出,而第二个代码是先弹出元素然后尝试查看。

如果你看https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html您将看到,当调用 pop() 时(即使它位于 if 语句中),它将弹出该元素并将指针移动到下一个元素。

关于java - 堆栈弹出功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com