"Recursive" listToString()-链表中的方法

"Recursive" listToString()-method in linked lists

由于准备Java考试,目前拜访了一个势力class,基本上得出了一个问题:

    class Node{    //List node
        String text;
        Node next;
    }

    class Stringbuilder{
        ...
        void append(String s) //attaches s
        String toString()     //returns the fully built String
    }

    public static String listToString(Node first){
        //TO DO
    }

我们的任务是定义listToString。我们做了一个肯定有效的迭代方法,但我对这个递归替代方案很好奇:

    public static String listToString(Node first){
        StringBuilder sb = new StringBuilder();
        if(first == null) return "";
        String result = first.text;
        return result + sb.append(first.next.text).toString();
    }

所以问题是:这行得通吗?

您发布的 listToString 方法中没有任何递归。它必须调用自己才能递归。

public static String listToString(Node first)
{
    if(first == null) return "";
    String result = first.text;
    return result + " " + listToString(first.next);
}