Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法删除C中单链表的第一个节点#_C#_Singly Linked List - Fatal编程技术网

C# 无法删除C中单链表的第一个节点#

C# 无法删除C中单链表的第一个节点#,c#,singly-linked-list,C#,Singly Linked List,我试图在C#中实现一个单链表。为了删除节点,我编写了以下代码: public void deleteNode(int value) { Node node = this; if (node.data == value) { node = node.next; } else { while (node != null && nod

我试图在C#中实现一个单链表。为了删除节点,我编写了以下代码:

public void deleteNode(int value)
    {
        Node node = this;

        if (node.data == value)
        {
            node = node.next;
        }
        else
        {
            while (node != null && node.next != null)
            {
                if (node.next.data == value)
                {
                    node.next = node.next.next;
                }
                node = node.next;
            }
        }
    }

我可以删除除第一个节点外的所有节点。为什么
node.next=node.next.next
更新这个实例,但是
node=node.next
不更新?

因为
node
是一个局部变量?@MatthewWatson但是node.next=node.next.next呢?当您更改“node.next”时,您实际上是在更改节点中的一个字段。当您更改
节点
时,您只是将引用的副本更改为节点。您可能打算使用
this.next=node.nextthis.next=node.next
而不是
node=node.next
不会删除任何节点。@伏都教,这是只读的对吗<代码>此=此。下一步不起作用