//函数功能:实现单链表倒序
//参数:申请单链表空间的首地址
//返回值:成功返回0,失败返回非0值
int Reverse_Func(Link *pHead)
{
if(NULL == pHead)
{
return -1;
}
//判断此时的链表是否是空链表
if(NULL == pHead->pNext)
{
return -2;
}
//断开单链表为两个:一个空 + 一个不带头
Link *pLink = pHead->pNext;
pHead->pNext = NULL;
//定义一个临时指针接替pLink的位置
Link *pTemp = NULL;
while(NULL != pLink)
{
pTemp = pLink;
pLink = pLink->pNext;
pTemp->pNext = pHead->pNext;
pHead->pNext = pTemp;
}
return 0;
}
本函数的思想在于:把一个单链表拆成一个空链表和一个不带头的链表 。
程序中有什么问题,希望各位大佬能及时指正,也期待各位能分享更好的思路。