代码如下:
ListNode * ReverseList(ListNode* pHead)
{
ListNode *pReverseHead = NULL;
ListNode* pNode = pHead;
ListNode* pPrev = NULL;
while (pNode != NULL)
{
ListNode* pNext = pNode->m_pNext;
if (pNext == NULL)
{
pReverseHead = pNode;
}
pNode->m_pNext = pPrev;
pPrev = pNode;
pNode = pNext;
}
return pReverseHead;
}
ListNode* Test(ListNode* pHead)
{
printf("The or iginal list is :\n");
PrintList(pHead);
ListNode* pReverseHead = ReverseList(pHead);
PrintList(pReverseHead);
return pReverseHead;
}
void Test1()
{
ListNode* pNode1 = CreateListNode(1);
ListNode* pNode2 = CreateListNode(2);
ListNode* pNode3 = CreateListNode(3);
ListNode* pNode4 = CreateListNode(4);
ListNode* pNode5 = CreateListNode(5);
CoonnectListNode(pNode1, pNode2);
CoonnectListNode(pNode2, pNode3);
CoonnectListNode(pNode3, pNode4);
CoonnectListNode(pNode4, pNode5);
ListNode* pReverseHead = Test(pNode1);
DestroyList(pNode1);
}