L2-022 重排链表

一、题目

二、解题思路

  1. 结构体数组的下标表示该节点的地址,value 表示该节点的值,nextkey 表示下一个结点的地址。
  2. 输入的节点不一定都属于这个链表:将此链表中的节点按顺序存储在数组中,并记录合法节点的个数 k ,数组中存放的是各节点的地址。
  3. 按照题目指定的顺序输出,注意考虑合法节点个数的奇偶性以及最后一个节点的下一个结点的地址为 -1 。

三、代码

cpp 复制代码
#include<iostream>
using namespace std;

struct List
{
	int value,nextkey;
}a[100005];

int main()
{
	int index,n,result[100005];
	cin>>index>>n;
	for(int i=0;i<n;i++)
	{
		int key;
		cin>>key;
		cin>>a[key].value>>a[key].nextkey;
	}
	int k=0;
	while(index!=-1)
	{
		result[k++]=index;
		index=a[index].nextkey;
	}
	int i=0,j=k-1,cot=0;
	for(;cot<(k+1)/2-1;i++,j--,cot++)
	{
		printf("%05d %d %05d\n",result[j],a[result[j]].value,result[i]);
		printf("%05d %d %05d\n",result[i],a[result[i]].value,result[j-1]);
	}
	if(k%2==0)
	{
		printf("%05d %d %05d\n",result[j],a[result[j]].value,result[i]);
	}
	printf("%05d %d -1\n",result[i],a[result[i]].value);
	return 0;
}

四、总结

输入的节点不一定都属于这个链表(测试点 3 )。

相关推荐
潼心1412o33 分钟前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
星光开发者1 小时前
基于决策树随机森林算法的小说推荐系统的设计与实现-计算机毕设【课程设计】78485
vue.js·算法·微信小程序·django·php·课程设计·express
-森屿安年-1 小时前
按身高排序
c++·算法
程序员清风1 小时前
算法与数据结构入门:复杂度、数组与链表
数据结构·算法·链表
无定义_2 小时前
Codeforces Round 1124 (Div. 2)
算法
(Charon)2 小时前
【C++面试】vector底层原理:扩容、拷贝移动与迭代器失效
c++·面试
朔北之忘 Clancy2 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi
汉克老师3 小时前
GESP2026年9月认证C++七级( 第一部分选择题(8~15题)精讲
c++·gesp·小学生·学c++编程
Mr_Macallon3 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
垆边人似月.3 小时前
任务混部(200 分档)
算法