插入方法有多余?

时间:2014-06-15 15:49:26

标签: 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);
        return list;
    }
}

我现在正在学习C#和递归,我的问题是:下一行有什么冗余?

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

1 个答案:

答案 0 :(得分:0)

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

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