C 链表:如何删除最后一个节点,其中我们有指向单个链表中最后一个节点的指针

C 链表:如何删除最后一个节点,其中我们有指向单个链表中最后一个节点的指针,c,linux,data-structures,linked-list,C,Linux,Data Structures,Linked List,在单个链表中,我们可以删除一个节点,并将指针指向该节点。 这可以通过将下一个节点的数据复制到当前节点中,直到到达结束 但是,我们如何通过持有并知道指向self的指针来删除最后一个节点呢 -谢谢当我们删除节点时,这意味着我们释放了指针指向的内存,而不是指针本身。因此,在最后一个节点的情况下也可以这样做 i、 e。 ptr=addressof(last node),它不等于指针的地址。删除节点时,意味着释放指针指向的内存,而不是指针本身。因此,在最后一个节点的情况下也可以这样做 i、 e。 ptr=

在单个链表中,我们可以删除一个节点,并将指针指向该节点。 这可以通过将下一个节点的数据复制到当前节点中,直到到达结束

但是,我们如何通过持有并知道指向self的指针来删除最后一个节点呢


-谢谢

当我们删除节点时,这意味着我们释放了指针指向的内存,而不是指针本身。因此,在最后一个节点的情况下也可以这样做

i、 e。
ptr=addressof(last node),它不等于指针的地址。

删除节点时,意味着释放指针指向的内存,而不是指针本身。因此,在最后一个节点的情况下也可以这样做

i、 e。
ptr=addressof(最后一个节点),它不等于指针的地址。

这通常是不可能的。您需要在最后一个节点之前输入该节点的地址。此节点的
next
指针应设置为
NULL
。无法从单链接列表中的最后一个节点直接访问最后一个节点之前的节点


但是,如果您有权访问
head
节点,则可以再次遍历列表以在最后一个节点之前获取该节点。

这通常是不可能的。您需要在最后一个节点之前输入该节点的地址。此节点的
next
指针应设置为
NULL
。无法从单链接列表中的最后一个节点直接访问最后一个节点之前的节点


但是,如果您有权访问
head
节点,则可以再次遍历该列表以获取最后一个节点之前的节点。

在单链链表中,最后一个节点必须指向NULL。这里真正的挑战是将NULL设置为单链表中最后一个但只有一个节点。结构节点{int data;结构节点*link;x->y->z假设x、y、z是单链表中的3个节点。ptr指向z节点。在删除ptr之前,我们需要在节点“y”中设置NULL。在单链表中,最后一个节点必须指向NULL。这里真正的挑战是将NULL设置为单链表中最后一个但只有一个节点。结构节点{int data;结构节点*link;x->y->z假设x、y、z是单链表中的3个节点。ptr指向z节点。在删除ptr之前,我们需要在节点“y”中设置NULL。您还需要最后一个节点之前的节点地址。此节点的
next
指针应设置为
NULL
。如果您无法访问
head
节点,则无法删除。我同意您的看法。我在采访高通公司时遇到了这个问题。采访者声称我们可以这样做s、 您还需要最后一个节点之前的节点地址。此节点的
next
指针应设置为
NULL
。如果您无权访问
head
节点,则无法删除。我同意您的看法。我在采访高通公司时遇到了这个问题。采访者声称我们可以这样做是