题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

  • 三指针pre、cur、rear
  • 头和尾要单独考虑:头节点指向nullptr,尾节点指向pre
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        if(!pHead) return nullptr;
        if(!pHead->next) return pHead;
        ListNode* pre = pHead;
        ListNode* cur = pHead->next;
        ListNode* rear;
        pHead->next = nullptr;//头节点指向nullptr
        while(cur->next){
            rear = cur->next;
            cur->next = pre;
            pre = cur;
            cur = rear;
        }
        cur->next = pre;//尾节点最后再指向pre
        return cur;
    }
};
全部评论

相关推荐

01-30 10:21
中北大学 golang
27届学院本誓死冲击...:技术栈不用搞这么详细,主要还是看实习和项目,毕竟技术栈就那点,你能写这么多,别人也可以写这么多,模版换一下换成上下的,不知道怎么排版可以去看看别人怎么写
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务