这是我对链表的递归插入方法:
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);
答案 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);
}
}