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

时间:2016-10-20 12:11:29

标签: c linux data-structures linked-list

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

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

-Thanks

2 个答案:

答案 0 :(得分:3)

This is generally not possible. You need the address of the node before the last node. This node should have it's next pointer set to NULL. The node before last cannot be directly accessed from the last node in a singly linked list.

However, if you have access to the head node, you can traverse the list again to get the node before the last node.

答案 1 :(得分:0)

当我们删除节点时,它意味着我们释放指针指向的内存而不是指针本身。因此,可以在最后一个节点的情况下完成相同的操作。

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