二级指针兑现单向链表的插入和删除

二级指针实现单向链表的插入和删除
链表节点结构就用最简单的结构表示吧
struct NODE {
   int count;
   struct NODE *next
}

struct NODE **node;

怎样利用节点的二级指针来实现单向链表的插入和删除?

譬如说例如知道要在当前节点 current 之前插入一个新节点 new。
current为节点的二级指针,struct NODE **current。
new 为一级指针,struct NODE *new = malloc(sizeof(struct NODE))。

归结来说就是怎么用二级指针current寻找父节点 或 怎样使父节点中的子节点指针指向new?

想了很久没想出来啊....

二级指针 单向链表 前插 删除

------解决方案--------------------
引用:
应该还有其他条件的,这样是找不到的

node如果是头的话就可以
 

     whie (STRUCT NODE *p=*node; p->next!=NULL && p->next!=*current && ; p=p->next)

大致这样. 如果只有一个节点需要特殊处理


------解决方案--------------------
struct NODE {
   int count;
   struct NODE *next
}

struct NODE **node;

// 前提是node == &prev_node->next && *node != head

int insert(struct NODE **node, struct NODE *new)
{
if (*node==NULL 
------解决方案--------------------
 new==NULL)
return -1;
{
struct NODE *prev = (struct NODE *)((char*)node - ((struct NODE *)0)->next);
new->next = prev-next;
prev->next = new;
}
return 0;
}

int delete(struct NODE **node)
{
if (*node==NULL)
return -1;
{
struct NODE *prev = (struct NODE *)((char*)node - ((struct NODE *)0)->next);
prev->next = (*node)->next;
}
return 0;
}