由于准备Java考试,当前正在访问功率课程,我们基本上想到了一个问题:

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

07-27 20:55
查看更多