题目地址
最后一个测试点:不是所有的点都是合法的,有的结点地址是负数。

#include<cstdio>
#include<iostream>
#include<map>
#include<stack>
using namespace std;
const int N=1e5+10;
struct node
{int id;int val;
}Node[N];
map<int,int>mp,v;
int start,n,k;
int main(void)
{cin>>start>>n>>k;for(int i=0;i<n;i++){int a,b,c; cin>>a>>b>>c;mp[a]=c,v[a]=b;}int index=0;while(1){Node[index].id=start,Node[index].val=v[start];start=mp[start];if(Node[index].id>=0) index++;if(start==-1) break;}start=0;while(1){if(start+k>index) break;stack<node>st;for(int i=start;i<start+k;i++) st.push(Node[i]);for(int i=start;i<start+k;i++) Node[i]=st.top(),st.pop();start=start+k;}for(int i=0;i<index;i++){printf("%05d %d ",Node[i].id,Node[i].val);if(i+1==index) printf("-1\n");else printf("%05d\n",Node[i+1].id);}return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
struct node
{int id,val;
}temp;
int start,n,k;
map<int,int>val,nxt;
vector<node>ans;
int main(void)
{cin>>start>>n>>k;for(int i=0;i<n;i++){int a,b,c; cin>>a>>b>>c;val[a]=b,nxt[a]=c;}while(start!=-1){temp.id=start,temp.val=val[start];ans.push_back(temp);start=nxt[start];}int index=0;while(1){if(index+k>ans.size()) break;reverse(ans.begin()+index,ans.begin()+index+k);index+=k;}for(int i=0;i<ans.size();i++){printf("%05d %d ",ans[i].id,ans[i].val);if(i+1==ans.size()) cout<<-1;else printf("%05d\n",ans[i+1].id);}return 0;
}

【PAT乙级】1025 反转链表 (25 分)相关推荐

  1. PAT乙级1025反转链表 25(分)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为3→2→1→6→5→ ...

  2. PAT | 1025 反转链表 (25分)【超时问题 + 柳神代码】

    1025 反转链表 (25分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→ ...

  3. C++学习之路 | PTA乙级—— 1025 反转链表 (20分)(精简)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5 ...

  4. 1025 反转链表 (25 分)

    1025 反转链表 (25 分) 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5 ...

  5. 【JAVA】PAT 乙级 1025 反转链表(测试点5超时,牛客网通过)

    [JAVA]PAT 乙级 1025 反转链表(测试点5超时,牛客网通过) 题目链接 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5 ...

  6. c语言最大字符1025,1025 反转链表 (25 分)C语言

    题目描述 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为 3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5 ...

  7. [PAT乙级]1025 反转链表 (思路+精简代码)

    1025 反转链表 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K ...

  8. PAT乙级|C语言|1025 反转链表 (25分)

    题目 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输 ...

  9. 【PAT (Basic Level) 】1025 反转链表 (25 分)

    给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...

最新文章

  1. html文字垂直居中_文字垂直居中
  2. mac使用被动ftp模式(pasv)_网络安全工程师与白帽子黑客教你:Kali Linux之使用Metasploit进行FTP服务扫描实战...
  3. 深入分析 Flutter 初始化流程
  4. 整型数据在内存中的存放形式
  5. I/O多路复用:select、poll和epoll详解
  6. Vue - 去除控制台“你正在开发模式下运行Vue”的警告
  7. mysql三表联合更新_mysql三表连接update
  8. Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
  9. python gridsearch_Python超参数自动搜索模块GridSearchCV上手
  10. Linux tmp目录自动清理 及解决方法
  11. 4019 设备树 Linux device tree 概述
  12. 用php求常见图形的面积,技巧:数学图形面积计算的十种方法!
  13. matlab 把连续函数离散,连续传递函数离散化
  14. 【模式串匹配】Aho-Corasick algorithm - AC字符串匹配算法实现与测试【Python】
  15. c语言与多字节编码,什么是单字节,双字节和多字节编码
  16. exit()和_exit()两个函数的区别
  17. 什么叫“我是搞计算机的”?
  18. 双精度移位指令SHLD,SHRD
  19. 数据结构与算法--第二章pro题解
  20. 2D metric和3D mesh的静态metric

热门文章

  1. 机器学习-过拟合和欠拟合以及正则化处理
  2. 知识图谱基础知识之四——知识图谱的典型应用
  3. docker学习------centos7.5下的swarm集群可视化构建
  4. guava-collections
  5. VC++ 使用预编译头
  6. 简单的MapReduce实践
  7. TCP/IP 总结一
  8. 《研磨设计模式》chap18 状态模式state(4)例子
  9. java元婴期(29)----java进阶(springmvc(3)---springmvc和mybatis整合参数绑定(上))
  10. 【计算机网络笔记】计算机网络体系与参考模型