#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}*LinkList;
void CreateLinkList(LinkList *L,int n)
{
//创建头结点
Node *pHead = (Node *)malloc(sizeof(Node));
pHead->next = NULL;
*L = pHead;
Node *pEnd = pHead;
Node *pCurrent ;
int i = 0,value;
while (i < n)
{
cout << "输入第" << i + 1 << "个结点值: ";
cin >> value;
pCurrent = (Node *)malloc(sizeof(Node));
pCurrent->data = value;
//尾插法
pCurrent->next = pEnd->next;
pEnd->next = pCurrent;
pEnd = pCurrent;
i++;
}
}
void TraverseLinkLinst(LinkList L)
{
if (L != NULL)
{
Node *pCurrent = L->next;
while (pCurrent != NULL)
{
cout << pCurrent->data << "##" ;
pCurrent = pCurrent->next;
}
}
}
void InverLinkList(LinkList *L)
{
if ((*L)->next != NULL)
{
Node *pCurrent = (*L) ->next;
Node *pNext = pCurrent->next;
Node *pPrev = NULL;
while(pNext != NULL)
{
pCurrent->next = pPrev;
pPrev = pCurrent;
pCurrent = pNext;
pNext = pNext->next;
}
pCurrent ->next = pPrev;
(*L)->next = pCurrent;
}
}
int main()
{
LinkList L;
CreateLinkList(&L,4);
TraverseLinkLinst(L);
InverLinkList(&L);
cout << endl;
TraverseLinkLinst(L);
}
链表逆置
最新推荐文章于 2022-03-25 09:55:56 发布