📄 delete.h
字号:
node *Delete_one_node( node *head, int num )
{
node *p1, *p2;
if( head == NULL) // 处理链表为空时的状况
{
cout << "链表为空,无结点可删!\n";
return(NULL);
}
if( head->data == num) // 若待删除的结点为首结点
{
p1=head;
head=head->next;
delete p1;
cout << "删除了一个结点!\n";
}
else // 删除其他结点
{
p1=head;
p2= head->next; // p1指向的结点在p2指向的结点之前
while(p2->data != num&&p2->next !=NULL ) //先循环查找待删除结点
{ //若p2指向的结点不是待删除结点,并且也不是尾结点时循环
p1=p2;
p2=p2->next; // p1,p2均向后挪动一个结点
}
if(p2->data == num) // 若找到, 删除p2指向的结点
{ // 注意:若p2指向的结点是链尾结点,这里的处理同样适用
p1->next = p2->next;
delete p2;
cout << "删除了一个结点!\n";
}
else cout<<num<<"链表上没有找到要删除的结点!\n";
}
return(head);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -