单链表的插入和删除操作中,为什么要用指向指针的指针?

在单链表的中为什么要用指向指针的指针呢??为什么不直接用Linklist L呢??是因为函数是引入变量修改的是副本的原因吗?

Status LinkInsert(Linklist *L, int i, Elemtype e )
{
    int j;                                
    Linklist p, s;
    p = *L;
    j = 1;
    while (p && j < i)
    {
         p = p->next;
        ++j;
    }        
    if (!p || j > i)
        return ERROR;
    s = (Linklist ) malloc ( sizeof (Node) );
    s->data = e;
    s->next = p->next;
    p->next = s;
    return OK;
    
}
阅读 5.6k
3 个回答

一个是地址,一个是复制副本的原因

好好看下c语言的基础部分:
1.形参与实参
2.指针

新手上路,请多包涵

传入一级指针如果只是删除添加除头结点以外的结点是可以的,但是删除和插入有可能需要修改头结点,这时需要传入二级指针来修改指向头结点的指针指向的位置。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进