两种方法的相似度极高,对应着两种不完全相同的开内存方法
直接上代码,注释内容的下一行可以代替注释内容,若采用注释内容,则要删除注释下面的一行
#include<iostream>
using namespace std;
struct Node
{
int data;
Node* next;
// Node(int x) :data(x), next(NULL) {};
};
//Node* head=new Node(0);
Node* head=new Node;
Node* tail=head;
int n,m;
int cnt=1;
void add(int x)
{
// Node *p=new Node(x);
Node *p=new Node;
tail->next=p;
p->data=x;
tail=tail->next;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i) add(i);
tail->next=head->next;
Node* d=head->next;
while(d)
{
if(++cnt==m)
{
cout<<d->next->data<<" ";
d->next=d->next->next;
if (d == d->next)break;
cnt=1;
}
d=d->next;
}
cout<<d->data<<endl;
}