问答题

设线性表 L=(a1,a2,a…,an-2,a-1,a。)采用带头结点的单链表保存,链表中结点定义如下:
typedef struct node {
int data;
struct node* next;
} NODE;
请设计一个空间复杂度为 O(1)且时间上尽可能高效的算法,重新排列 L 中的各结点,得到线性表 L'=(a1,an,a2,an-1,a3,an-2…)。
要求:

给出算法的基本设计思想。

【参考答案】

算法的基本设计思想:
先观察L=(a1,a2,a3
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)