问答题
设线性表 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…)。
要求:
根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释。
算法实现: