PAT甲级真题1097 链表重复数据删除(简单解法)
给定一个单链表 LL,链表上的每个节点都存有一个键值,你应该删掉其中拥有重复键值绝对值的节点。
也就是说,对于每个值 KK,只保留键值或键值绝对值为 KK 的第一个节点。
同时,被删掉的节点也应保存在一个单独的链表中。
例如,给定 LL 为 21→-15→-15→-7→15,则删除重复数据后的链表为 21→-15→-7,已删除链表为 -15→15。
输入格式
第一行首先包含头节点地址,然后包含节点总数 NN。
节点地址用一个 55 位非负整数表示(可能有前导 00),NULL 用 −1−1 表示。
接下来 NN 行,每行描述一个节点的信息,格式如下:
Address Key Next
其中 Address 是节点地址,Key 是一个整数表示键值,Next 是下一个节点的地址。
输出格式
首先按顺序输出结果链表,然后按顺序输出删除链表。
每个节点占一行,格式与输入相同。
数据范围
1≤N≤1051≤N≤105,
节点键值的绝对值不会超过 104104。
输入样例:
00100 5
99999 -7 87654
23854 -15 00000
87654 15 -1
00000 -15 99999
00100 21 23854
输出样例:
00100 21 23854
23854 -15 99999
99999 -7 -1
00000 -15 87654
87654 15 -1
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int e[N],ne[N];
bool flag[N];
int main(){int h,n;cin>>h>>n;while(n--){int address,data,next;cin>>address>>data>>next;e[address]=data;ne[address]=next;}//存地址vector<int>a;vector<int>b;for(int i=h;i!=-1;i=ne[i]){if(flag[abs(e[i])]){b.push_back(i);}else{a.push_back(i);flag[abs(e[i])]=true;}
}for(int i=0;i<a.size();i++){printf("%05d %d ",a[i],e[a[i]]);if(i==a.size()-1)puts("-1");else printf("%05d\n",a[i+1]);}for(int i=0;i<b.size();i++){printf("%05d %d ",b[i],e[b[i]]);if(i==b.size()-1)puts("-1");else printf("%05d\n",b[i+1]);}return 0;
}
PAT甲级真题1097 链表重复数据删除(简单解法)相关推荐
- PAT甲级真题目录(按题型整理)(转自柳神)
转载自:https://www.liuchuo.net/archives/2502?tdsourcetag=s_pcqq_aiomsg 最短路径 1003. Emergency (25)-PAT甲级真 ...
- PAT甲级真题 1018 A+B in Hogwarts--python解法
PAT甲级真题 1018 A+B in Hogwarts 提交:2638 通过:1559 通过率:59% If you are a fan of Harry Potter, you would kno ...
- 【题解】【AcWing】1587. 链表重复数据删除
1587. 链表重复数据删除 原题传送:AcWing 1587. 链表重复数据删除 给定一个单链表 LLL ,链表上的每个节点都存有一个键值,你应该删掉其中拥有重复键值绝对值的节点. 也就是说,对于每 ...
- 【PAT甲级真题整理五】1121~1155
终于考完了qaq把最后一堆也整理出来了 目录 1121 Damn Single(25)set.map的使用 1122 Hamiltonian Cycle(25)哈密顿回路 1123 Is It a C ...
- 【PAT甲级真题整理三】1061~1090
目录 1061 Dating(20)字符串处理 1062 Talent and Virtue(25)排序 1063 Set Similarity(25)set的使用 1064 Complete Bin ...
- 「PAT甲级真题解析」Advanced Level 1009 Product of Polynomials
PAT (Advanced Level) Practice 1009 Product of Polynomials 如果对你有帮助,要点个赞让我知道喔~ 文章目录 问题分析 完整步骤描述 伪代码描述 ...
- PAT甲级真题 1011 World Cup Betting (20分) C++实现
题目 With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly exc ...
- PAT乙级真题 1075 链表元素分类 C++实现(测试点5:用map会超时)
题目 给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而 [0, K] 区间内的元素都排在大于 K 的元素前面.但每一类内部元素的顺序是不能改变的.例如:给定 ...
- 1131. Subway Map (30)-PAT甲级真题 (DFS or 堆优化dij or SPFA)
题意 给出地铁线路数n,分别给出每条线的站点数m,再依次列出站点id.然后询问k次从启点sv到终点ev的最短路径,如果最短路径相同,要求换乘最少的路径.最后按条件输出. 思路 1.用unordered ...
- PAT甲级真题1069 数字黑洞(巧妙解法)
对于任何各位数字不完全相同的四位整数,我们将该数字的四个数位按非升序排列,得到一个数字,再按非降序排列,得到另一个数字,将两个数字相减就能得到一个新的数字. 不断重复这个过程,我们就能得到数字6174 ...
最新文章
- java 类的存储结构设计_Doris存储层设计介绍1——存储结构设计解析
- 数据蒋堂 | JOIN运算剖析
- 谈谈 Mifare Classic 破解
- Timer的缺陷 用ScheduledExecutorService替代
- c语言程序设计运用,清华大学出版社-图书详情-《C语言程序设计及应用教程》...
- 现在银行etl还要做拉链表吗_hive 拉链表 实现全量数据 增量更新
- VMware安装kali linux 和中文汉化方法
- 【Vue】一个案例带你搞懂methods、watch及computed的使用规则
- Python 中xrange和range区别
- java 语法 —— 数组
- 观点:比特币新一轮突破“即将到来”
- 如何将Noteepad++每一行都添加一个逗号
- 信息隐藏与数字水印实验4-LSB信息隐藏的卡方分析
- 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机
- HTML12张图片魔方,纯CSS3 实现3D魔方
- 啤酒和尿布:一文看懂关联规则
- 【ONE·C || 初识C语言 】
- java计算机毕业设计Web医学院校大学生就业信息管理系统源码+mysql数据库+系统+lw文档+部署
- cdd 变分 图像修复 matlab,图像修复中的TV模型
- 在线教育巨头多邻国Duolingo入华一周年,中国市场马力全开
热门文章
- 一款免费好用的在线高效作图工具
- SE11字段过多时怎么快速建表
- 人人都能看懂——c大调d大调f…
- mysql 唯一记录_在数据库中能够唯一地标识一个记录被称为 MySQL数据库使用教程...
- win10相机打不开,显示错误代码0xA00F4246(0x800706D9)
- 政府12345便民服务热线 -- MICC全媒体智能呼叫中心建设方案
- 人脸识别活体检测的一些方法
- java商品管理系统黑马_JavaEE基础班 水果超市管理系统
- php投影,投影效果怎么做?PS制作逼真的投影效果
- (分层图)洛谷P4568[JLOI2011]飞行路线