题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805057860517888

题意:给定链表L1->L2->...->Ln,要求按Ln->L1->Ln-1->L2->...的格式输出。

思路:水模拟,按照要求做就行了,定义结构体数组模拟内存,每个结点的下标即其地址,结点包括data,nxt(指向下一个元素),lst(指向上一个元素),输入数据之后,循环一遍求出每个结点在链表中的上一个结点的地址,存在lst中,然后用frt,bk分别指向当前链表的头部和尾部,输出即可。但是这样我wa了一个点,检查好久也没检查除有什么错误,上网看了才发现题目有个坑点:输入的结点不一定在链表上。我...对这种坑真的很无奈,个人觉得这样的坑意义不大,程序设计比赛的侧重应该放在算法上,放在思想上,而不是玩这种文字游戏。吐槽完还得继续刷题,吐吐就行了,也不用一直上纲上线,改变不了它就改变自己吧。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 struct node{
 5     int dat,nxt,lst;
 6 }a[100005];
 7
 8 int n,frt,bk,t1,t2,t3;
 9
10 int main(){
11     scanf("%d%d",&frt,&n);
12     for(int i=0;i<n;++i){
13         scanf("%d%d%d",&t1,&t2,&t3);
14         a[t1].dat=t2,a[t1].nxt=t3;
15         if(t3==-1) bk=t1;
16     }
17     a[frt].lst=-1;
18     int f=frt;
19     while(f!=-1){
20         a[a[f].nxt].lst=f;
21         f=a[f].nxt;
22     }
23     while(frt!=bk){
24         printf("%05d %d %05d\n",bk,a[bk].dat,frt);
25         bk=a[bk].lst;
26         if(frt==bk) break;
27         printf("%05d %d %05d\n",frt,a[frt].dat,bk);
28         frt=a[frt].nxt;
29     }
30     printf("%05d %d -1\n",frt,a[frt].dat);
31     frt=a[frt].nxt;
32     return 0;
33 }

转载于:https://www.cnblogs.com/FrankChen831X/p/10574739.html

l2-22(重排链表)相关推荐

  1. 【L2-022 重排链表】天梯赛L2系列详细解答

    天梯赛L2-022 重排链表 题目详情: 输入样例: 00100 6 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 6823 ...

  2. 【每日一算法】重排链表

    微信改版,加星标不迷路! 每日一算法-重排链表 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→L ...

  3. LeetCode-笔记-143. 重排链表

    LeetCode-笔记-143. 重排链表 143. 重排链表 给定一个单链表 L:L0→L1→-→L**n-1→Ln , 将其重新排列后变为: L0→L**n→L1→L**n-1→L2→L**n-2 ...

  4. Java多重链表_Java实现 LeetCode 143 重排链表

    143. 重排链表 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节 ...

  5. 【CCCC】L2-022 重排链表 (25分),,链表遍历

    problem L2-022 重排链表 (25分) 给定一个单链表 L ​1 ​​ →L ​2 ​​ →⋯→L ​n−1 ​​ →L ​n ​​ ,请编写程序将链表重新排列为 L ​n ​​ →L ​ ...

  6. 重排链表-c语言链表法解决

    重排链表-c语言链表法解决 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → L ...

  7. 【区块反转】【链表合并】【反转链表】【链表元素分类】【链表去重】【重排链表】

    目录 说明: 1110 区块反转 输入格式: 输出格式: 输入样例: 输出样例: 1105 链表合并 输入格式: 输出格式: 输入样例: 输出样例: 1025 反转链表 输入格式: 输出格式: 输入样 ...

  8. 有两个列表 l1 =[11,22,33] l2 =[22,33,44]

    a. 获取内容相同的元素列表 l1 = [11,22,33]l2 = [22,33,44]for l in l1:if l in l2:print(l) b. 获取 l1 中有, l2 中没有的元素列 ...

  9. 剑指 Offer 22(链表4).链表中的倒数第k个结点

    剑指 Offer 22(链表4).链表中的倒数第k个结点 问题描述: 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链 ...

  10. Leetcode之重排链表

    文章目录 前言 一.线性表 二.寻找链表中点 + 链表逆序 + 合并链表 总结 前言 题目如下: 重排链表(点我) 一.线性表 因为链表不能下标访问元素,所以我们不能随机访问链表中的元素,因此我们采用 ...

最新文章

  1. 在CentOS8下安装docker遇到的containerd.io >= 1.4.1解决方法
  2. 上海名校CS专业第一本科生:我5天里打工3天,丝毫不影响GPA,可见「教学」有多荒谬...
  3. 关于无效份额 和 拒绝份额
  4. 10532: 花 [dp]
  5. 在线免费下载音乐网站源码,支持在线播放
  6. JAVA对接SAP接口使用sapjco3的见解
  7. 引导滤波器联合上采样代码
  8. 简单教会按关键字搜索商品
  9. S7 200 smart模拟量应用介绍
  10. Dubbo的版本处理错误
  11. 第四章 道德经第四章原文 道德经第四章译文
  12. Android应用或界面启动时间性能
  13. 矩阵分析:矩阵序列,矩阵级数,矩阵函数,微积分,函数应用
  14. prometheus查询语句学习
  15. arcgis server 服务发布搭建总流程(以本机作为服务器)
  16. Vue-V-model参数绑定
  17. 金融时间序列分析:1. 基础知识
  18. 了解电感—参数、特性、选型
  19. 老船履带工具使用方法_船舶通导设备的日常维护要点归纳
  20. 手动备份还原win系统的驱动程序

热门文章

  1. javascript数组集锦
  2. Jquery JQZoom Plugin 放大鏡效果 Two
  3. 【Smart_Point】unique_ptr与shared_ptr使用实例
  4. 三维重建【一】——————(深度学习方式)
  5. SLAM闭合回环————视觉词典BOW小结
  6. asp.net的Ajax学习进阶
  7. ASP.NET2.0 遍历文件夹下所有图片【月儿原创】
  8. C#实现光盘做启动盘
  9. Jmail的主要参数列表
  10. 网页制作的中的一些工具代码