一、结构体定义
typedef int DataType;
typedef struct ListNode//定义结点
{
DataType data;
struct ListNode* next;
}ListNode,*PListNode;
typedef struct PList//定义一个成员是指向结点的指针的结构体
{
PListNode PHead;
}List,*PList;
二、代码:
//2.链表逆序(翻转)
void ReverseList(PList PList)
{
PListNode cur=NULL;
PListNode NewNode=NULL;
PListNode tmp=NULL;
cur=PList->PHead;
assert(PList);
if (PList->PHead==NULL||PList->PHead->next==NULL)//空链表或着只有一个结点的链表
{
return PList->PHead;
}
else//大于两个结点
{
while (cur)
{
tmp=cur;
cur=cur->next;//先将当前指针更新到下一个结点
tmp->next=NewNode;
NewNode=tmp;
}
PList->PHead=NewNode;//更新链表的头
}
}