链表的结点删除,两种写法几乎一样,但是不知道其中一个为什么是错的

第一个

int Delete(LinkList *L, int i)

{/*删除某个位置上的数据*/

LinkList q, p = *L;

int j = 1;

while (j++ < i && p)

p = p->next;

if (j > i + 1 || !p)

return ERROR;

q = p->next;

p->next = q->next;

free(q);

return OK;

}

第二个

int Delete(LinkList *L,int i)

{/*删除某个位置上的数据*/

LinkList q, p = (*L)->next;

int j=1;

while (j++ < i && p)

p = p->next;

if (j > i+1 || !p)

return ERROR;

q = p;

p= q->next;

free(q);

return OK;

}

感觉第一个函数和第二个函数一样的啊,但是第一个可以正常运行,第二个的传递结果有错

求解为什么

回答

图片说明

以上是 链表的结点删除,两种写法几乎一样,但是不知道其中一个为什么是错的 的全部内容, 来源链接: utcz.com/a/28665.html

回到顶部