🌈个人主页: 会编辑的果子君
💫个人格言:“成为自己未来的主人~”
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @param m int整型
* @return int整型
*/
typedef struct ListNode ListNode;
ListNode*BuyListNode(int n){
ListNode*newnode=(ListNode*)malloc(sizeof(ListNode));
if(newnode==NULL){
perror("malloc fail");
}
newnode->val=n;
newnode->next=NULL;
return newnode;
}
ListNode*CreatListNode(int n){
ListNode*phead=BuyListNode(1);
ListNode*ptail=phead;
for(int i=2;i<=n;i++){
ptail->next=BuyListNode(i);
ptail=ptail->next;
}
//链表收尾连起来
ptail->next=phead;
return phead;
}
int ysf(int n, int m ) {
ListNode*head= CreatListNode(n);
ListNode*pcur=head;
ListNode*prev=NULL;
int count =1;
while(pcur->next!=pcur){
if(count == m){
//删除pcur
prev->next=pcur->next;
free(pcur);
pcur=prev->next;
count =1;
}else{
//pcur往前走
prev=pcur;
pcur=pcur->next;
count++;
}
}
// write code here
return pcur->val;
}