#Decryption:
#CreatedTIme: 02/17/2012
typedef struct _linklist
{
int value;
struct _linklist *next;
} LINK_LIST, *PLINK_LIST;
有头结点单链表逆序:
PLINK_LIST ReverseHasHeader(PLINK_LIST pHeader)
{
PLINK_LIST p = NULL;
PLINK_LIST q = NULL;
PLINK_LIST t = NULL;
p = pHeader;
q = pHeader->next;
p->next = NULL;
while (NULL != q)
{
t = p->next;
p->next = q;
q = q->next;
p->next->next = t;
}
return pHeader;
}
无头结点单链表逆序:
PLINK_LIST ReverseNoHeader(PLINK_LIST pHeader)
{
PLINK_LIST p = NULL;
PLINK_LIST q = NULL;
PLINK_LIST t = NULL;
PLINK_LIST s = NULL;
if ((NULL == pHeader) || (NULL == pHeader->next))
{
return pHeader;
}
p = pHeader;
s = q = pHeader->next;
p->next = NULL;
while (NULL != q)
{
t = p->next;
p->next = q;
q = q->next;
p->next->next = t;
}
s->next = pHeader;
pHeader = pHeader->next;
s->next->next = NULL;
return pHeader;
}