Linkedlist递归方法

时间:2014-07-25 00:06:40

标签: java recursion linked-list stack-overflow

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

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

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

1 个答案:

答案 0 :(得分:-1)

将代码转换为

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

}
  1. 如果它仍然失败并出现异常,则表示您有一个循环链接列表
  2. 如果它没有失败,则表示您正在填充分配给您的应用程序的默认内存堆。您可以尝试增加堆大小以查看它是否可以解决问题
  3. 找出问题后,您可以恢复原始代码。如果您想了解如何增加堆大小的信息,请查看此链接

    Increase heap size in Java