链表之判空,删除
文章目录
- 🍊自我介绍
- 🍊判空
- 🍊删除
你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
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;}}