本人采用的是线性表存储的方式,40001是题目提示。
第一步就是创建线性表node,第二步将head存入node,再依次交换顺序。
代码如下:
void reorderList(struct ListNode* head){
//空就返回
if(head == NULL){
return ;
}
//线性表
struct ListNode* vec[40001];
struct ListNode* node = head;
int n =0;
//head存入node
while(node != NULL){
vec[n++] = node;
node = node -> next;
}
int i = 0, j = n - 1;
//依次交换顺序
while(i < j){
vec[i] -> next = vec[j];
i++;
if(i == j) break;
vec[j] -> next = vec[i];
j--;
}
vec[i] -> next = NULL;
}