#include <stdlib.h>
#include <stdio.h>
//The struct of list node
typedef struct Node
{
int iData;
struct Node* pNext;
}LNode;
/**
* Swap the place between two near nodes
*/
void nearLNodeSwap(LNode** pList)
{
//Nothing to do in the case of pList is NULL or just has one node
if(NULL == pList || NULL == *pList || NULL == (*pList)->pNext)
return ;
LNode* pre = NULL;
LNode* p = *pList;
LNode* q = p->pNext;
while(p != NULL && q != NULL)
{
if(p == (*pList)) //Head node
{
*pList = q;
}
else //Other nodes
{
pre->pNext = q;
}
p->pNext = q->pNext;
q->pNext = p;
pre = p;
p = p->pNext;
if(p != NULL)
q = p->pNext;
}
}
/**
*Create a List and init all of the nodes
*pList: the List be created
*listSize: list size
*return:return
版权声明:本文为han_jiang_xue原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。