美文网首页
《剑指Offer》 反转链表

《剑指Offer》 反转链表

作者: 萨缪 | 来源:发表于2019-10-31 19:00 被阅读0次

题目描述

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

源代码

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        ListNode * prev = NULL;
        ListNode * pNext = NULL;
        if (pHead == NULL) {
            return NULL;
        }
        if (pHead->next == NULL) {
            return pHead;
        }
        prev = NULL;
        pNext = pHead;
        ListNode * lastNode = NULL;
        ListNode * pNode = pHead;
        while (pNode != NULL) {
            //保存next指针
            pNext = pNode->next;
            if (pNext == NULL) {
                lastNode = pNode;
            }
            //将该节点的next指向上一个节点
            //第一个head前面没有东西 所以反转后不变 所以第一次prev = NULL是正确的 
            pNode->next = prev;
            prev = pNode;
            //相当于pNode = pNode->next
            pNode = pNext;
        }
        return lastNode;

    }
};

相关文章

网友评论

      本文标题:《剑指Offer》 反转链表

      本文链接:https://www.haomeiwen.com/subject/afatbctx.html