繁体   English   中英

链表递归方法

[英]Linkedlist recursive method

我正在尝试编写一种递归方法,该方法以反向方式打印链表,但出现了stackoverflow错误。 该方法应在到达数组的最后一个元素时终止,并将控制权返回给调用它的方法,然后该方法将打印并返回到调用它的方法,依此类推。

public void print(Node node){
    if(node.next != null)
       print(node.next);

    System.out.println(" " + node.value + " ");
}

将您的代码转换成

public void print(Node node){
   System.out.println(" " + node.value + " "); 
 if(node.next != null)
       print(node.next);   

}
  1. 如果仍然由于异常而失败,则意味着您有一个循环链表
  2. 如果没有失败,则表示您正在填充分配给应用程序的默认内存堆。 您可以尝试增加堆大小以查看是否可以解决问题

解决问题后,您可以还原原始代码。如果您需要有关如何增加堆大小的信息,请查看此链接

增加Java中的堆大小

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM