闲来无事,做个练习,记录一下
#include <iostream>
using namespace std;
typedef struct LNode {//单链表定义
struct LNode* next;
int data;
}LNode, * LinkList;
LinkList createList() {//创建链表 因为是头插法所以顺序是0987654321
LinkList L = NULL;
for (int i = 0; i < 10; i++) {
LNode* node = (LNode*)malloc(sizeof(LNode));
node->next = NULL;
node->data = NULL;
node->data = i;
if (L == NULL) {
L = node;
}
else {
node->next = L->next;
L->next = node;
}
}
return L;
}
void reverseLL(LinkList& L) {//反转链表
LNode* p = NULL;
p = L->next;
L->next = NULL;
while (p != NULL) {
LNode* temp = p->next;
p->next = L;
L = p;
p = temp;
}
}
int main()
{
LinkList list = createList();
LNode* curr = list;
while (curr!=NULL)//遍历输出创建的链表的元素 0987654321
{
cout << curr->data;
curr = curr->next;
}
cout << endl;
reverseLL(list);
curr = list;
while (curr != NULL)//遍历输出逆序后链表的元素 1234567890
{
cout << curr->data;
curr = curr->next;
}
}