爱冒险的duola 2022-05-14 14:29 采纳率: 50%
浏览 14

关于单链表,用户输入一个数在链表中查找并进行删除

这一段是别人发的,但是我不太理解每一行的意思,有没有人帮帮我?

//删除算法(对用户输入的数进行删除)
Linklist *Delete_link1(Linklist *head,int key)
{
Linklist *p1,*p2;
if(head->data==key)
{
p2=head;
head=head->next;
free(p2);
}
p1=head;
p2=head->next;
while(p2!=NULL)
{
if(p2->data==key)
{
p1->next=p2->next;
free(p2);
p2=p1->next;
}
else
{
p1=p2;
p2=p2->next;
}
}
return head;
}

img

  • 写回答

2条回答 默认 最新

  • 心随而动 人工智能领域新星创作者 2022-05-14 15:12
    关注

    其实就是一个链表的遍历,因为链表结点的连接需要知道他的上一个结点位置和下一个结点位置,所以用两个移动节点进行遍历,当找到要删除的结点,直接越过这个结点进行连接,让然后释放这个结点的内存,就删除了

    评论

报告相同问题?

问题事件

  • 创建了问题 5月14日

悬赏问题

  • ¥50 CCD工业视觉相机检测出现光边
  • ¥20 C++初高中竞赛题,devc++可以通过的
  • ¥60 二次元手游日常任务自动化代肝(相关搜索:自动化)
  • ¥15 mysql将查询的结果作为动态列名怎么实现
  • ¥50 python自动地图截图脚本
  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目
  • ¥15 根据时间在调用出列表