前言
声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出数据结构每日一题
要点
- 链表的删除
思想
- 需要借助三个指针,一个用作遍历的推行(比较指针),一个用作暂时保存要被删除的数据(删除指针),一个用作删除遍历节点的前驱节点(前驱指针)
void deleteAll(LinkList &L,ElemType x){
LinkNode *p,*q,*pre;
p=L->next;
pre=L;
while(p != NULL){
if(p->data == x){
q=p; //保存要被删除的节点
p=p->next; //指向下一个数据
pre->next=p; //指向比较指针
free(q);
else
pre=p;
p=p->next;
}
}
}
今日错题
单链表中添加头节点的目的是 方便操作的实现