我的x设置的是40,但是出不来结果,不知道哪里写错了,请大家帮忙看看,也可以教教我有没有更简单的写法
void deleX(LinkList L, ElemType x) //删除链表中所有比x小的元素
{
LinkList p;
p=L->next;
while (p->next != NULL)
{
p = p->next;
if (p->data < x)
{
free (p);
}
else
{
p = p->next;
}
}
printf ("\n将值为%d的元素删除后,", x);
}
void deleX(LinkList L, ElemType x) //删除链表中所有比x小的元素
{
LinkList p,q;
p=L;
while (p->next != NULL)
{
if (p->next->data < x)
{
q = p->next;
p->next = p->next->next;
free (q);
}
else
p = p->next;
}
}
你把P直接删了那不是后面的节点都丢了, free是释放内存, 不是删除某一个节点
删除操作应该不是通过free函数来进行的吧?