专业的集团网站开发费用多少钱,生成器,南通网站建设找哪家好,百度排名推广#x1f451;个人主页#xff1a;啊Q闻 #x1f387;收录专栏#xff1a;《数据结构》 #x1f389;道阻且长#xff0c;行则将至 前言 今天这道题目时牛客上的题目#xff0c;名为环形链表的约瑟夫问题#xff0c;很有趣的的一道题目 环形链表的约瑟… 个人主页啊Q闻 收录专栏《数据结构》 道阻且长行则将至 前言 今天这道题目时牛客上的题目名为环形链表的约瑟夫问题很有趣的的一道题目 环形链表的约瑟夫问题
题目为
思路 看题目后我们明显知道这里要创建一个环形链表我们首先要写一个函数创建新节点再由新节点来创造新链表其次我们还要完成的步骤是逢m删除当前节点。 代码如下 #includestdlib.htypedef struct ListNode ListNode;ListNode*BuyNode(int x)//创建新节点{ListNode*newnode(ListNode*)malloc(sizeof(ListNode));if(newnodeNULL)exit(1);newnode-valx;newnode-nextNULL;return newnode;}ListNode*createList(int n)//创建新链表{ListNode*pheadBuyNode(1);ListNode*ptailphead;for(int i2;in;i){ptail-nextBuyNode(i);ptailptail-next;}ptail-nextphead;return ptail;}
int ysf(int n, int m ) {ListNode*prevcreateList(n);ListNode*pcurprev-next;int count1;while(pcur-next!pcur)//逢m删除当前节点{if(countm){prev-nextpcur-next;free(pcur);pcurprev-next;count1;}else {prevpcur;pcurpcur-next;count;}}return pcur-val;
} 详解 创建新节点 创建新链表 逢m删除当前节点 注意 感谢阅读对你有帮助的话宝子们三连支持一下吧 ❤