![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构—链表
Apollo-yyy
考研失败的华子5G工程师一枚
展开
-
1032 Sharing
题目大意:两个链表如果存在公共后缀,输出公共后缀的首字母的地址,否则输出-1。解题思路:用结构图保存链表节点,根据输入的链表节点首先跑一遍第一个链表,把跑过的节点都标记掉。然后跑一下第二个链表,如果遇到被标记的节点证明来到了公共后缀的首字母。代码如下:#include<iostream>#include<cstdio>#include&amp原创 2019-02-01 22:23:32 · 136 阅读 · 0 评论 -
1052 Linked List Sorting
题目大意:给输入的列表进行排序。解题思路:一开始直接就拿结构体排序做了,一边写一边怀疑题目和链表有啥关系,然后有两个测试点过不去。之后意识到可能输入的节点有的不在给定头指针开始的链表上,于是开了一个结构体保存筛选过后的节点,继续结构体排序。注意有可能一个有效节点也没有,那么就只输出“0 -1”。代码如下:#include<iostream>#include<cstd...原创 2019-02-07 21:29:48 · 176 阅读 · 0 评论 -
1074 Reversing Linked List
题目大意:给你一个链表,每隔k个节点翻转一下,输出翻转后的结果。解题思路:如果链表的长度正好是K的整数倍则全部要分段翻转,否则末尾的余数部分无需翻转。重点是翻转部分首尾指针的修改,可以定义一个变量保存未翻转前尾指针的下一个节点地址,每间隔K个节点修改首指针的指向地址。其他节点就反向修改即可。代码如下:#include<iostream>#include<cstdio...原创 2019-02-08 11:33:04 · 249 阅读 · 0 评论 -
1097 Deduplication on a Linked List
题目大意:给你一个链表。只保留第一个出现的且节点键值的绝对值不重复的节点(比如15——(-15)只保留15,-15删除),被删除的节点依次构建一个新链表。最后输出删除后得到的链表和被删除节点组成的新链表。解题思路:想了一种投机取巧的方法,就是用动态数组保存节点,被删除的节点放在一个新的数组中,这样无需构建链表和操作指针,非常容易理解。代码如下:#include<iostream&...原创 2019-02-09 17:17:30 · 300 阅读 · 1 评论 -
1133 Splitting A Linked List
题目大意:给你一个链表,要求重新排定元素顺序,规则是先把负数放在前面,然后大于等于0小于k的数放在k前,大于k的放在k后。解题思路:根据题意遍历三次链表分别处理这三种数据构建新链表即可。代码如下:#include<iostream>#include<cstdio>#include<algorithm>using namespace std;s...原创 2019-02-27 10:58:51 · 263 阅读 · 0 评论