每日一题(反转链表)

简介: 每日一题(反转链表)

每日一题(反转链表)


206. 反转链表 - 力扣(LeetCode)


ca38e3545881577446c33e9ddb235d60_4620c689bc9e4e45bf5b38e2868cdb04.png


思路:


可以定义一个新的newhead结构体指针。再定义cur指针和next指针互相配合,将原链表中的节点从头到尾依次头插到newhead链表中,同时更新newhead。最后返回newhead即可。


注意:这里头插是改变cur指针的next,让cur指针的next指向newhead之后,cur就需要向后走指向其后一个节点,但是此时cur的next已经被修改了,所以一定要提前保存好cur的next指针的地址。再使用cur = next;语句改变cur的指向。


代码实现:


struct ListNode* reverseList(struct ListNode* head){
    struct ListNode* cur=head;
    struct ListNode* newhead=NULL;
    struct ListNode* next =NULL;
    while(cur)
    {
        //将头取下来进行头插
        next = cur->next;//记录下一个位置
        cur->next = newhead;
        newhead = cur;//更新头指针
        cur = next; 
    }
    return newhead;
}


完结


反转链表的分析就到这里啦,若有不足,欢迎评论区指正,下期见!


相关文章
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——反转链表
|
7月前
【一刷《剑指Offer》】面试题 16:反转链表
【一刷《剑指Offer》】面试题 16:反转链表
|
7月前
|
算法
【每日一题】牛客网——链表的回文结构
【每日一题】牛客网——链表的回文结构
|
7月前
每日一题——反转单链表
每日一题——反转单链表
【剑指offer】-反转链表-15/67
【剑指offer】-反转链表-15/67
|
7月前
|
存储 算法
六六力扣刷题双指针之反转链表
六六力扣刷题双指针之反转链表
58 0
|
7月前
牛客网-反转链表
牛客网-反转链表
30 0
|
C++
剑指Offer - 面试题24:反转链表
剑指Offer - 面试题24:反转链表
54 0
剑指offer 23. 反转链表
剑指offer 23. 反转链表
60 0