其他分享
首页 > 其他分享> > 反转链表

反转链表

作者:互联网

题目描述

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例1

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

实例2

输入:head = [1,2]
输出:[2,1]

示例3

输入:head = []
输出:[]

提示

思路

没遍历一个节点就改变next指针指向,注意空链表和元素数为1时直接返回原链表即可;注意第一个节点的next指针改为指向NULL

代码

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head==nullptr||head->next==nullptr)return head;
        ListNode *cur=head;
        ListNode *cur_next=head->next;
        ListNode* temp;
        cur->next=nullptr;
        while(cur_next->next!=nullptr){
                temp=cur_next->next;
                cur_next->next=cur;
                cur=cur_next;
                cur_next=temp;       
        }
        cur_next->next=cur; 
        return cur_next;
    }
};

标签:head,ListNode,cur,反转,nullptr,next,链表
来源: https://www.cnblogs.com/wxy214/p/16418208.html