一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点。

如题所述

要删除链表中的一个结点,必须知道该结点的前一个和后一个结点(头尾结点除外),否则无法完成。如A→B→C→D链表,要删除B结点,只需把A指向C,再把B释放内存即可。如只知道B,而不知道A,则删除了B就无法把A与C相连
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-28
将这个节点复制成下一个节点的值,然后删除下一个节点
node *p; // 当前节点
node *q;
q = p -> next;
p.data = q.data; // 复制q节点到p

p -> next = q -> next; // 删除q
free(q);本回答被提问者和网友采纳