我读到可以从链表中删除一个节点,只有当它不是最后一个链表时,才可以删除该链表的头指针。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
使用您发送的代码,您只能将第二个列表的数据复制到第一个中