问题背景:
1、有n个节点
2、编写程序将线性表A进行逆置
核心思路.:
核心思路就是创建三个指针q,m,p。
m存储原本的p,q存储指向p的指针,p存储原本的下一个指针,利用m->next=q来将原本p所指向的节点b指向前驱节点a,依次循环遍历即可。
代码实现:
#include<stdio.h>
#include<math.h>
typedef struct node {
int data;
struct node* next;
}node;
node* Transpose(node* head) {
if (head->next == NULL || head==NULL)
return head;
node* p = head;
node* q = NULL;
while (p!=NULL ) {
node*m = p;
p = p->next;
m->next = q;
q = m;
}
return q;
}