チェーンテーブルが反転しました

760 ワード

ListNode* ReverseIteratively(ListNode* pHead)//           ,               
{
	ListNode* pReversedHead = NULL;
	ListNode* pNode = pHead;
	ListNode* pPrev = NULL;
	while(pNode != NULL)
	{
		// get the next node, and save it at pNext
		ListNode* pNext = pNode->m_pNext;

		// if the next node is null, the currect is the end of original 
		// list, and it's the head of the reversed list
		if(pNext == NULL)
			pReversedHead = pNode;

		// reverse the linkage between nodes
		pNode->m_pNext = pPrev;

		// move forward on the the list
		pPrev = pNode;
		pNode = pNext;
	}

	return pReversedHead;
}