实现链表逆序,首先要有一个链表,下面是链表的结构体:
typedef struct listnode {
int data;
struct listnode* next;
}listnode , *list;
实现思路:
1. 若链表为空或只有一个元素,则直接返回;
2. 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向节点的后继;
3. 重复2,直到q==NULL
4. 调整链表头和链表尾
示例:以逆序1->2->3->4为例,图示如下
![](https://i-blog.csdnimg.cn/blog_migrate/95e6b40826af521469dbf63fc1223ce9.jpeg)
完整实现代码:
#include<iostream>
using namespace std;
typedef struct listnode {
int data;
struct listnode* next;
}listnode , *list;
void print(list head);
list reverse(list head);
list fill(list head); //默认用1-10填充链表
i