【数据结构】删除链表中所有指定元素的节点

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;
		}
	}
}

思路:循环,每个节点都判断,直到节点为空,循环结束。备份所判断节点的前一个节点,用于删除操作使用。

猜你喜欢

转载自blog.csdn.net/qq_35564841/article/details/81073738
今日推荐