数据结构 单链表删除节点问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 09:18:39
删除一已知链表中所有值为k的节点
最好有过程
说个思路也行
最好把怎么删的那个地方写出来
是删除值为k的节点,是要先找到这个节点,然后再把它删除

bool onelink::removeall(int k)
{
onelinknode * t;
int matchedCount = 0;
while( head && head->date == k )
{
t = head->next;
delete head;
head = t;
matchedCount ++;
}

onelinknode * p = head;
while( p && p->next )
{
if( p->next.date == k )
{
t = p->next->next;
delete p->next;
p->next = t;
matchedCount ++;
}
else
{
p = p->next;
}
}
return matchedCount > 0;
}

把所有的K接点置空(单)
把和K节点相连的节点的后继连到不是K节点的前驱上(循环)思路就这样
要有图好才好写程序.很就没写那种程序了都忘得差不多了
你自己写写看吧

思路就是楼上的了
代码参考一下,简单得很:
#include <iostream>
#include <string>
using namespace std;
int multiply();
int main(){
struct Node
{
int data;
Node* link;
}*p,*q;
p=new Node();
q=p;
//创建链表
for(int i=1;i<5;i++)
{
p->link=new Node();
p->data=i;
p=p-&g