顺序删除链表中元素
作者:
把头发掀起来看世界
,
2024-12-04 18:03:07
,
所有人可见
,
阅读 1
#include <iostream>
#include <climits>
using namespace std;
struct Node
{
int val;
Node *next;
Node(int x):val(x),next(NULL){}
};
void min_delete(Node *head)
{
Node *dummy=new Node(-1);
dummy->next=head;
while(dummy->next)
{
Node *pre_min=dummy;
int min_val=0x3f3f3f3f;
for(Node *p=dummy;p->next;p=p->next)
{
if(p->next->val<min_val)
{
min_val=p->next->val;
pre_min=p;
}
}
Node *t=pre_min->next;
cout<<t->val<<" ";
pre_min->next=t->next;
delete t;
}
}
int main()
{
Node *head=new Node(1),*tail=head;
for(int i=0;i<5;i++)
{
int x;
cin>>x;
Node *t=new Node (x);
tail->next=t;
tail=t;
}
for(Node *p=head;p;p=p->next)
cout<<p->val<<" ";
cout<<endl;
min_delete(head);
return 0;
}