Reversed Linked List(Reverse a singly linked list)

struct ListNode
{
    int m_nKey;
    ListNode* next; 
}

ListNode* reverseList(ListNode* pHead)
{
    ListNode* pReversedHead = nullptr;
    ListNode* pNode = pHead;
    ListNode* pPrev = nullptr;
    
    while(pNode != nullptr){
        ListNode* pNext = pNode->next;
        if(pNext == nullptr)
            pReversedHead = pNode;
        pNode->next = pPrev;
        
        pPrev = PNode; 
        pNode = pNext; 
    } 
    
    return pReversedHead; 
} 



// NOTE: recursive implementation to be perfect?

 

Guess you like

Origin www.cnblogs.com/hujianglang/p/11421013.html