剑指offer--反转链表并打印

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        if(pHead==NULL)
            return NULL;
        // 1.采用temp指针存一下头结点
        // 2.接着取出下一个节点后使用头插法就可以了
        // 3.temp接着取
        ListNode *ppre=NULL;   // 存的是待反转节点
        ListNode *temp=NULL;      
        while(pHead!=NULL){  
            temp=pHead->next;  // 存的头节点的下一个节点,因为只有一个节点的时候不用反转滴
            pHead->next=ppre; 
            ppre=pHead;   // 头插法插入
            pHead=temp;             
        }
        return ppre;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容