l2-22(重排链表)
题目链接: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(重排链表)相关推荐
- 【L2-022 重排链表】天梯赛L2系列详细解答
天梯赛L2-022 重排链表 题目详情: 输入样例: 00100 6 00000 4 99999 00100 1 12309 68237 6 -1 33218 3 00000 99999 5 6823 ...
- 【每日一算法】重排链表
微信改版,加星标不迷路! 每日一算法-重排链表 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→L ...
- LeetCode-笔记-143. 重排链表
LeetCode-笔记-143. 重排链表 143. 重排链表 给定一个单链表 L:L0→L1→-→L**n-1→Ln , 将其重新排列后变为: L0→L**n→L1→L**n-1→L2→L**n-2 ...
- Java多重链表_Java实现 LeetCode 143 重排链表
143. 重排链表 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节 ...
- 【CCCC】L2-022 重排链表 (25分),,链表遍历
problem L2-022 重排链表 (25分) 给定一个单链表 L 1 →L 2 →⋯→L n−1 →L n ,请编写程序将链表重新排列为 L n →L ...
- 重排链表-c语言链表法解决
重排链表-c语言链表法解决 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → - → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → L ...
- 【区块反转】【链表合并】【反转链表】【链表元素分类】【链表去重】【重排链表】
目录 说明: 1110 区块反转 输入格式: 输出格式: 输入样例: 输出样例: 1105 链表合并 输入格式: 输出格式: 输入样例: 输出样例: 1025 反转链表 输入格式: 输出格式: 输入样 ...
- 有两个列表 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 中没有的元素列 ...
- 剑指 Offer 22(链表4).链表中的倒数第k个结点
剑指 Offer 22(链表4).链表中的倒数第k个结点 问题描述: 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链 ...
- Leetcode之重排链表
文章目录 前言 一.线性表 二.寻找链表中点 + 链表逆序 + 合并链表 总结 前言 题目如下: 重排链表(点我) 一.线性表 因为链表不能下标访问元素,所以我们不能随机访问链表中的元素,因此我们采用 ...
最新文章
- 在CentOS8下安装docker遇到的containerd.io >= 1.4.1解决方法
- 上海名校CS专业第一本科生:我5天里打工3天,丝毫不影响GPA,可见「教学」有多荒谬...
- 关于无效份额 和 拒绝份额
- 10532: 花 [dp]
- 在线免费下载音乐网站源码,支持在线播放
- JAVA对接SAP接口使用sapjco3的见解
- 引导滤波器联合上采样代码
- 简单教会按关键字搜索商品
- S7 200 smart模拟量应用介绍
- Dubbo的版本处理错误
- 第四章 道德经第四章原文 道德经第四章译文
- Android应用或界面启动时间性能
- 矩阵分析:矩阵序列,矩阵级数,矩阵函数,微积分,函数应用
- prometheus查询语句学习
- arcgis server 服务发布搭建总流程(以本机作为服务器)
- Vue-V-model参数绑定
- 金融时间序列分析:1. 基础知识
- 了解电感—参数、特性、选型
- 老船履带工具使用方法_船舶通导设备的日常维护要点归纳
- 手动备份还原win系统的驱动程序