最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:
还添加了一个删除结点的操作。
#include<iostream>
using namespace std;
typedef int ItemType;
typedef struct ListNode
{
ItemType item;
ListNode * next;
}LinkList,*pLinkList;
pLinkList head=NULL;
int size=0;
pLinkList find(int index)
{
pLinkList point=head;
for(int i=1;i<index;i++)
point=point->next;
return point;
}
void insert(int index1,ItemType newData)
{
size++;
pLinkList pre=find(index1-1);
pLinkList Ptr=new LinkList;
Ptr->item=newData;
if(index1==1)
{
Ptr->next=head;
head=Ptr;
}
else
{
Ptr->next=pre->next;
pre->next=Ptr;
}
}
void reverse(Li