C# 我的insert方法中有什么是多余的?

C# 我的insert方法中有什么是多余的?,c#,C#,这是我对链表的递归插入方法: public static MyLinkedList recursiveInsert(int value, ref MyLinkedList list) { if (list == null) { return new MyLinkedList(value, null); { else { list.next = recursiveInsert(value, ref list.next);

这是我对链表的递归插入方法:

public static MyLinkedList recursiveInsert(int value, ref MyLinkedList list)
{
    if (list == null)
    {
        return new MyLinkedList(value, null);
    {
    else
    {
        list.next = recursiveInsert(value, ref list.next);
        return list;
    }
}
我现在正在学习C和递归,我的问题是:下面这行的冗余是什么

list.next = recursiveInsert(value, ref list.next);

除了注释中提到的一些问题之外,多余的是重新分配列表中已分配的节点。以下内容应该足够了,因为您已经在使用ref参数,这也是不推荐的,但我知道这只是为了练习:

public static void recursiveInsert(int value, ref MyLinkedList list)
{
    if (list == null)
    {
        list = new MyLinkedList(value, null);
    }
    else
    {
        recursiveInsert(value, ref list.next);
    }
}

好的,简单的问题让你们开始:是什么让你们认为任何东西都是多余的?并没有足够的信息来诊断。冗余意味着它不是必需的,但状态在递归中总是必需的。您正在传递状态,因此它不是冗余的。与冗余无关,但对于包含许多元素的列表,调用recursiveInsert(而不是listAppend)会有耗尽调用堆栈的风险,即递归运行得太深。这正是我想要的!谢谢