c++|C++实现之单链表中删除指定值

解题思路:
(1) 新建单向链表;
(2) 删除链表中的指定值:
步骤一:排除特殊情况:头结点值等于需要删除值data,则先直接删除头部节点;
步骤二:
使用快慢指针ptemp, qtemp;
if ptemp->Getdata =https://www.it610.com/article/= e
qtemp->Getnext = ptemp->Getnext;
删除ptemp节点
ptemp = qtemp->Getnext;
else
qtemp = ptemp->Getnext;
ptemp = qtemp->Getnext;

bool LinkList::ElemDeleLinkList()//删除指定值 { int e = 0; cout << "输入删除的数值:" << " "; cin >> e; cout << endl; while (m_Head != NULL && m_Head->Getdata() == e) { // 排除链表头指定值的情况 Node* ptemp; ptemp = m_Head; m_Head = m_Head->Getnext(); delete ptemp; } Node* ptemp, * qtemp; // p:较快地指针, q:较慢指针 ptemp = qtemp = m_Head; while (ptemp != NULL) { if (ptemp->Getdata() == e) {// 第一个p肯定不会是data qtemp->Setnext(ptemp->Getnext()); delete ptemp; ptemp = qtemp->Getnext(); } else { qtemp = ptemp; ptemp = ptemp->Getnext(); } } return true; }

实现效果如下:
c++|C++实现之单链表中删除指定值
文章图片

【c++|C++实现之单链表中删除指定值】

    推荐阅读