簡體   English   中英

使用遞歸的雙向鏈表的toString方法

[英]toString method for a doubly linked list using recursion

 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)

然后稍微修改一下代碼,使其使用它並繼續傳遞下去,list變量也是不必要的,遞歸將負責串聯所有內容:

public String recursiveToString(DoubleLinkedListNode<T> current)
{
    if(current == null)
    {
        return "";
    }
    else
    {
        return current.info + " " + recursiveToString(current.next);
    }
}

如果您希望在不更改函數簽名的情況下執行此操作,只需重命名我上面具有的函數,然后為無參數函數創建定義,如下所示:

public String recursiveToString()
{
    return aboveFunction(first);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM