参考代码:
#include<stdio.h>
#include<stdlib.h>

typedef struct _person
{
	int date;
	struct _person *next;
}person;    //使用typedef,后面可直接用person表示该类型,可省略struct _person

person _create(int n)    //创建链表
{
	int i;
	person *head = (person*)malloc(sizeof(person));//建立头指针
	person *p = head;
	p->next = NULL;
	for(i=1;i<=n;i++){    //建立n节链表
		person *q = (person*)malloc(sizeof(person));
		q->date = i;
		p->next = q;    //在原来的基础上增加节点
		p = q;    //再将前一个指针后移一位
		q->next = NULL;
	}
	p->next = head->next;    //将链表首尾相接成环形
	free(head);    //释放头指针,避免读到
	return *p;    //p是最后一个节点
}

int function(person *m)
{
	person *p = NULL;
	int count=0;
	while(m->next != m){
		if(count == 2){
			p = m->next;    //删除节点
			m->next = p->next;
			free(p);
			count = 0;
		}
		count++;
		m = m->next;
	}
	return m->date;
}

int main()
{
	int n;
	person *m = (person*)malloc(sizeof(person));
	scanf("%d",&n);
	*m = _create(n);
	printf("%d",function(m));
	free(m);
	return 0;
}
点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论