当前位置: 首页 > 知识库问答 >
问题:

接收到一个错误,表示java leetcode中的堆栈为空

司徒耀
2023-03-14

相同的代码在这里

类MyQueue{

Stack<Integer> mainS;
Stack<Integer> helperS;
 // Stack<Integer> mainS =new Stack<>();
 // Stack<Integer> helperS =new Stack<>();

public MyQueue() {
      mainS =new Stack<>();
      helperS =new Stack<>();
}

public void push(int x) {
    if(mainS.size()>0){
         mainS.push(x);
    }
   
}

public int pop() {
    while(mainS.size() >1){
        helperS.push((mainS.pop()));
    }
    int val = mainS.pop();

    mainS.add(helperS.pop());

    return val;
}

public int peek() {
    while(mainS.size() >1){
        helperS.push((mainS.pop()));
    }
    int val1 = mainS.pop();
    helperS.push(val1);

    mainS.add(helperS.pop());

    return val1;
}

public boolean empty() {
    if(mainS.size()==0) return true;
    return false;
}

}

/**

  • 您的MyQueue对象将被实例化并按如下方式调用:

即将出现的错误是*java.util.

在102行,java.base/java.util.Stack.peek

在84行,java.base/java.util.Stack.pop

在35号线MyQueue.peek

在第69行,Driver.helper选择方法

在89号线,司机。帮手

在110号线Driver.main*

逻辑是正确的,请帮助别人。

共有1个答案

都超英
2023-03-14

替换以下代码

 public void push(int x) {
    if(mainS.size()>0){
         mainS.push(x);
    }
  }

具有

    public void push(int x) {
         mainS.push(x);
   }

您正在检查堆栈的大小是否应大于0,然后再进行推送。但是当你创建它时,它将是0,如果它是0,你将永远不会推它,所以它总是空的。

 类似资料:
  • 问题内容: 下面给出的代码显示了运行时的Stackoverflow错误。但是,如果我使另一个类CarChange创建Car的对象,它将成功运行。我是一个初学者,请执行以下代码以了解在Java中进行向上转换的重要性。 问题答案: 一个stackoverflow通常意味着您有一个无限循环。 收到此消息的原因是因为您从testdrive方法调用驱动器,并且在该方法中再次调用drive。

  • 问题内容: 我的第一段代码是我的项目对象文件;第二个是主班。在运行代码没有任何问题之前,但是在添加读写文件之后,我的代码开始收到堆栈流错误。只是正在调用错误的代码段。 我的主班: 如何找到导致堆栈溢出的地方? 问题答案: 创建: 并创造 因此,在初始化时,您将不断创建这些对象 有一个类似的Baeldung示例,用于获取StackOverflowError 由于ClassOne的构造函数实例化了Cl

  • 本文向大家介绍google-chrome-devtools 错误堆栈,包括了google-chrome-devtools 错误堆栈的使用技巧和注意事项,需要的朋友参考一下 示例 每个Error对象都有一个名为stack的字符串属性,其中包含堆栈跟踪:

  • 问题内容: 嗨,我正在尝试使用另一个空堆栈反转堆栈(我自己编写了一个堆栈)。由于某种原因,它无法正常工作。谁能帮我这个 ? 问题答案: while(!stack1.isEmpty()){ Integer value = (Integer)stack1.pop(); System.out.println(value); reverse.push(value); }

  • 我想接收snmp陷阱,我在snmp4j上获得了它,但现在我正在使用westhawk snmp堆栈库来实现陷阱接收器模块。我使用这个库示例来接收陷阱,但这段代码以rawPdu的形式接收陷阱,当我编辑代码时,我应该怎么做?这是我的代码:

  • 我有一个ASP.NET Core3.0Web API托管在Azure应用服务上。我正在试图弄清楚为什么它会在一个控制器操作方法中抛出一个500内部服务器错误。我已经建立了应用程序洞察力,我可以在Azure Portal上的“失败”页面上看到有500个异常。但是,我看不到它们的堆栈跟踪。在Application Insights或Azure Monitor中打开堆栈跟踪报告需要做些什么吗。附注。即使