Java 使用递归的双链表的toString方法 公共字符串recursiveToString() { DoubleLinkedListNode当前=第一个; 字符串列表=”; 如果(当前==null) { 返回“”; } 其他的 { list+=current.info+“,”; 当前=当前。下一步; return list+recursiveToString(); } }

Java 使用递归的双链表的toString方法 公共字符串recursiveToString() { DoubleLinkedListNode当前=第一个; 字符串列表=”; 如果(当前==null) { 返回“”; } 其他的 { list+=current.info+“,”; 当前=当前。下一步; return list+recursiveToString(); } },java,recursion,Java,Recursion,它应该在我运行代码时打印出列表,但每次运行时都会崩溃。到目前为止,我一直在尝试这样做。首先,您希望每次都将列表中的当前位置传递回函数,因此将签名更改为: public String recursiveToString() { DoubleLinkedListNode<T> current = first; String list = ""; if(current == null) { return ""; } els

它应该在我运行代码时打印出列表,但每次运行时都会崩溃。到目前为止,我一直在尝试这样做。

首先,您希望每次都将列表中的当前位置传递回函数,因此将签名更改为:

 public String recursiveToString()
  {
    DoubleLinkedListNode<T> current = first;
    String list = "";

    if(current == null)
    {
      return "";
    }
    else
    {
      list += current.info + ", ";
      current = current.next;
      return list + recursiveToString();
    }
  }

您正在将当前值重置为每次调用的第一个值,您可能希望将其传递到函数中,并且每次都重置列表变量。欢迎继续!首先,如果你能标记你所使用的语言,那就太好了。此外,请尝试提供有关您的问题的更多详细信息。只是说“它只是崩溃了”是相当模糊的。您是否看到堆栈溢出异常?空引用异常?当试图找出代码中的问题所在时,这类信息可能非常有价值。祝您过得愉快:)有没有办法在不传递任何参数的情况下重写代码?是的,请参阅我的编辑,您仍然需要我定义的函数,您的无参数函数只需在第一个元素中传递它即可
public String recursiveToString(DoubleLinkedListNode<T> current)
public String recursiveToString(DoubleLinkedListNode<T> current)
{
    if(current == null)
    {
        return "";
    }
    else
    {
        return current.info + " " + recursiveToString(current.next);
    }
}
public String recursiveToString()
{
    return aboveFunction(first);
}