02-线性结构3 Reversing Linked List (25分)
PS:在网上看了看关于这道题的许多解析,觉得还是这种数组法最容易理解。主要是我觉得这道题的输入方式使得构造链表的操作不好表述。
首先可以看到一个规律是:Address与Data是绑定的,是不可变的,改变的是Next,于是借助这个关系,创建三个大容量数组data next list
其中第一个负责在输入的Address下标下记录data
next数组同理
而list数组负责顺着地址将数据串成顺序形式,也就是说,实际上此数组占用了,在接下来的操作中,只需要操纵list数组的位置就好。
而读题意,是在K个节点的区间内翻转,所以翻转操作的第一个循环,就是限制在K个节点内操作,而第二个循环,则是使用一个翻转数组的经典操作,可以记住此段方便使用
最后注意格式输出
具体代码实现
#include <stdio.h>
#define MAX_SIZE 100005
int main()
{
int data[MAX_SIZE];
int next[MAX_SIZE];
int list[MAX_SIZE];
int firstAdd,N,K,i

最低0.47元/天 解锁文章
681

被折叠的 条评论
为什么被折叠?



