链表写法,90%通过率,求优化

#include<bits/stdc++.h>
using namespace std;

struct node{ //定义链表结点
    int data; //结点的值
    node *next; //指向下一个结点的指针
};

int main(){
  int n,k,m;
  scanf("%d%d%d",&n,&k,&m);
  k--;

  node *head,*p,*now,*prev; //定义变量

  head = new node; //创建头结点
  head->data = 1; //头结点的值为1
  head->next = NULL; //头结点的指针为空

  now = head; //now指向头结点

  for(int i = 2;i<=n;i++){
      p = new node; //创建新结点
      p->data = i; //新结点的值为i
      p->next = NULL; //新结点的指针为空
      now->next = p; //now指向的结点的指针指向新结点
      now = p; //now指向新结点
  }

  now->next = head; //最后一个结点指向头结点,形成循环链表
  while(k--){
  	now = now->next;
  }
  
  while(n--){
  	for(int i = 0;i<m-1;i++){
  		now = now->next;
  	}
  	if(n == 0){
  		cout << now->next->data << " ";
  	}
  	
  	now->next = now->next->next;
  }
}

全部评论
我改成从0开始,过了。
3 回复 分享
发布于 2023-09-24 23:20 重庆
1 1 1的例子
点赞 回复 分享
发布于 2024-12-29 12:05 湖南

相关推荐

大专境巅峰电子狗:头一次看到这种简历,学术与技术学习,直接用技能概括就好了呀,实习经历要写丰富一点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务