c-删除没有头指针的节点



我读到可以从链表中删除一个节点,只有当它不是最后一个链表时,才可以删除该链表的头指针。cpp代码如下,

Node *r=node->next;
node->data=r->data;
node->next=r->next;
free(r);

我读到这个代码不能用来删除最后一个链表,我们需要添加额外的条件。我不明白为什么?

+您是否返回了链接列表的指针?+您设置了C标记,但却对cpp说三道四。

考虑给我们这4行的代码。

这段代码不能直接用于删除最后一个节点的原因是,你首先需要通过抓取下一个指针直到找到NULL来获得最后一个结点的地址。(有这样的东西:(

while(ptr->next != NULL)
ptr = ptr->next;

在此之后,ptr将等于您的最后一个节点adresse。有了这个地址,你可以随心所欲。

示例:如果保存头节点,则可以将最后一个放置为第一个,甚至可以删除最后一个节点。。etc

使用您发送的代码,您只能将第二个列表的数据复制到第一个中

相关内容

  • 没有找到相关文章

最新更新