void FindAndDelete(LinkList List, int data)
{
LinkList before = List;
LinkList temp;
List = List->next;
while (List != NULL)
{
if (List->data == data)
{
temp = List;//待删除元素
before->next = temp->next;//删除该元素
List = temp->next;//链表前进一位,before不变
free(temp);//删除元素
}
else
{
before = before->next;
List = List->next;
}
}
}
思路:循环,每个节点都判断,直到节点为空,循环结束。备份所判断节点的前一个节点,用于删除操作使用。