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);
}