剑指offer:15、反转链表

题目描述

输入一个链表,反转链表后,输出新链表的表头。

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        // 1    2     3     4     5     6     7
 //pBefo  pNode  pAft
        ListNode* pNode=pHead;
        ListNode* pPrev=NULL;
        ListNode* pReverseHead;
        if(pHead==NULL)return NULL;
        while(pNode!=NULL)
        {
            ListNode* pAfter=pNode->next;
            if(pAfter==NULL)
                pReverseHead=pNode;
            pNode->next=pPrev;
            pPrev=pNode;
            pNode=pAfter;
            
        }
        return pReverseHead;

        

    }
};

 

你可能感兴趣的:(机试题,剑指offer)