Reverse a linked list in place

template
void LinkedList::Reverse()
{
    if( nullptr == m_header )
    {
        return;
    }
    
    LinkedListNode* pPrevious = nullptr;
    LinkedListNode* pCurrent = m_header;
    LinkedListNode* pNext = nullptr;
    while( nullptr != pCurrent )
    {
        pNext = pCurrent->GetNextNode();
        
        pCurrent->SetNextNode(pPrevious);
        
        pPrevious = pCurrent;
        
        pCurrent = pNext;
    }
    
    m_header = pPrevious;
}