你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。
🍊判空
条件:head->next == NULL
int is_empty_linklist(linknode_t *head)
{
return head->next == NULL ? 1 : 0;
}
🍊删除
思路:
1、定义一个指针p和指针q ;首先p = head 遍历链表的所有元素,当p->next ==NULL循环结束
2、找到要删除的数据后,q记录其结点,然后把q->next 的值存放到p->next
3、释放q
int delete_data_linklist(linklist_t *head,datatype_t data)
{
linklist_t *p = NULL;
linklist_t *q = NULL;
if(is_empty_linklist(head))
{
retutn -1;
}
p = head;
//没有遍历到链表尾部
while(p->next != NULL)
{
if(p->next->data == data)
{
//保存要删除的结点
q = p->next;
p->next = q->next;
free(q);
q = NULL;
flag = 1;
}
else
{
p = p->next;
}
}
if(flag == 0)
{
return -2;
}
else
{
printf("delete %d is successful!\n",data);
return 0;
}
}