题意说的很清楚了,这种题的话,做的时候最好就是在纸上自己亲手模拟一下,清楚一下各个指针的情况,

这样写的时候就很清楚各个指针变量保存的是什么值。

PS:一次AC哈哈,所以说自己动手在纸上画画还是很有好处的~

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <cmath>
#include <queue>
using namespace std;
const int maxn=+; struct Node{
int data;
int next;
}node[maxn],ans[maxn];
int main()
{
int first,n,k;
int addr,data,next;
scanf("%d %d %d",&first,&n,&k);
for(int i=;i<n;i++){
scanf("%d %d %d",&addr,&data,&next);
node[addr].data=data;
node[addr].next=next;
}
int p=first;
int lastRear=-;//上K个节点的最后节点的地址
int newfirst; //新链表的首地址
while(p!=-){
int head,last;
head=last=p;
int tmp=head;
//用于判断剩余的节点个数是否>=k个
for(int i=;i<k- && tmp!=-;i++){
tmp=node[tmp].next;
}
//若剩余节点<k,则按原来的顺序即可
if(tmp==-){
ans[lastRear].next=p;
while(p!=-){
ans[p].data=node[p].data;
ans[p].next=node[p].next;
lastRear=p;
p=node[p].next;
}
break;
} for(int i=;i<k && p!=-;i++){
ans[p].data=node[p].data;
if(i!=)
ans[p].next=last;//后一个指向前一个
last=p;
p=node[p].next;
}
if(lastRear!=-){
ans[lastRear].next=last; //上K个节点的末尾指向当前K个节点的最后一个
}
else{
newfirst=last; //新链表的首地址
}
lastRear=head; //反转,头部变成了末尾
}
ans[lastRear].next=-; while(newfirst!=-){
if(ans[newfirst].next!=-)
printf("%05d %d %05d\n",newfirst,ans[newfirst].data,ans[newfirst].next);
else
printf("%05d %d %d\n",newfirst,ans[newfirst].data,ans[newfirst].next);
newfirst=ans[newfirst].next;
}
return ;
}

PAT甲题题解-1074. Reversing Linked List (25)-求反向链表的更多相关文章

  1. PAT甲题题解-1007. Maximum Subsequence Sum (25)-求最大子区间和

    题意:给出n个数,求最大连续的子区间和,并且输出该区间的第一个和最后一个数. 如果所有数都小于0,那么则输出0,第一个数和最后一个数. 看数据k的范围,就知道肯定不能两层for循环来求区间和,O(n^ ...

  2. PAT甲题题解-1013. Battle Over Cities (25)-求联通分支个数

    题目就是求联通分支个数删除一个点,剩下联通分支个数为cnt,那么需要建立cnt-1边才能把这cnt个联通分支个数求出来怎么求联通分支个数呢可以用并查集,但并查集的话复杂度是O(m*logn*k)我这里 ...

  3. PAT甲题题解-1040. Longest Symmetric String (25)-求最长回文子串

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789177.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  4. PAT甲题题解-1012. The Best Rank (25)-排序水题

    排序,水题因为最后如果一个学生最好的排名有一样的,输出的课程有个优先级A>C>M>E那么按这个优先级顺序进行排序每次排序前先求当前课程的排名然后再与目前最好的排名比较.更新 至于查询 ...

  5. PAT甲题题解-1036. Boys vs Girls (25)-找最大最小,大水题

    题意:给出n个人的姓名.性别.ID.分数,让你找出其中哪个妹纸分数最高.哪个汉子分数最低.以及他们的差如果没有妹纸或者汉子,则对应输出Absent,差用NA代替. 就是for一遍找最大最小值,水题 # ...

  6. PAT甲题题解-1062. Talent and Virtue (25)-排序水题

    水题,分组排序即可. #include <iostream> #include <cstdio> #include <algorithm> #include < ...

  7. PAT甲题题解-1125. Chain the Ropes (25)-贪心水题

    贪心水题,每次取最短的两个绳子合并,长度缩减成一半 #include <iostream> #include <cstdio> #include <algorithm&g ...

  8. PAT甲题题解-1009. Product of Polynomials (25)-多项式相乘

    多项式相乘 注意相乘结果的多项式要开两倍的大小!!! #include <iostream> #include <cstdio> #include <algorithm& ...

  9. PAT甲题题解-1017. Queueing at Bank (25)-模拟

    有n个客户和k个窗口,给出n个客户的到达时间和需要的时长有空闲的窗口就去办理,没有的话就需要等待,求客户的平均时长.如果在8点前来的,就需要等到8点.如果17点以后来的,则不会被服务,无需考虑. 按客 ...

随机推荐

  1. 项目管理心经——正确的使用Microsoft Project

    第一步:填写task items 第二步:定义个性化日历(Tools-->Change working time) 第二步:填写task duration 第三步:填写前置任务 第四步:自动生成 ...

  2. 修改TEMPDB所在的路径

    USE master go ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'Path\tempdb.mdf') go AL ...

  3. ConstraintLayout使用手册

    1. 解决痛点 主要用拖拽 解决嵌套过多 2. 简易使用手册 增加约束 四个角直接拖拽就好了 删除约束 match_constraint 属性 这个属性类似于match_parent,去掉margin ...

  4. css3自定义滚动条背景透明

    .editor{ overflow:hidden; height:640px; padding:0 45px; border: 0 none; outline: none; } .editor::-w ...

  5. 洛谷 P1144 最短路计数

    传送门:https://www.luogu.org/problemnew/show/P1144 这虽然是一道普及+的题,然而我发现我现在还没做过,这也就直接导致我今天模拟T2只杠了个暴力分…… 那这道 ...

  6. oracle中over函数

    1.oracle中按一个字段分组排序后取第一条数据. SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY 分组字段 ORDER BY 排序字符 D ...

  7. 【转】在嵌入式Linux和PC机Linux下使用popen函数时,程序运行结果有差异。

    下面程序演示了在嵌入式Linux和PC机Linux下使用popen函数时,程序的运行结果是有差异的. 两个程序 atest.c 和 btest.c,atest 检查是否有 btest 进程运行,如果没 ...

  8. 前端:background 设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. JavaScript 删除数组中的对象

    1.获得对象在数组中的下标 function (_arr,_obj) { var len = _arr.length; for(var i = 0; i < len; i++){ if(_arr ...

  10. day 27

    今日内容: 关于面向对象的一些内置方法 1.__str__:在对象被打印时自动触发,可用来定义对象被打印. 注意:返回必须是一个字符串类型的值 ############################ ...