• 反转链表二代目!【手绘漫画】图解LeetCode之反转链表 II(LeetCode 92)


    在这里插入图片描述

    图解LeetCode刷题计划

    1、写在前面

    手绘漫画系列正式上线!!!“图解LeetCode刷题计划” 来了!!!

    今天是第二十期,争取每天一期,最多两天一期,欢迎大家监督我。。。
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    2、题目

    首先看一下题目,
    在这里插入图片描述
    【手绘漫画】面试必考之图解逆转单链表/单链表逆序

    这里要先确定一个问题,依旧还是逆转链表, 不过是指定范围的逆转!
    在这里插入图片描述

    3、正文

    一起来看:

    思路如下,先逆转 mn 之间的链表,然后再逆转两个节点的部分。

    具体如下:
    在这里插入图片描述
    逆转部分,就是之前讲过的反转链表。
    在这里插入图片描述
    最后指定 a->next=d;b->next=c; 完事!
    在这里插入图片描述
    在这里插入图片描述

    4、代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* reverseBetween(ListNode* head, int m, int n) {
            if(m==n) return head;
            auto dummy=new ListNode(-1);
            dummy->next=head;
            auto a=dummy,d=dummy;
            for(int i=0;i<m-1;i++) a=a->next;
            for(int i=0;i<n;i++) d=d->next;
            auto b=a->next,c=d->next;
            for(auto p=b,q=p->next;q!=c;){
                auto o=q->next;
                q->next=p;
                p=q;q=o;
            }
            a->next=d;
            b->next=c;
            return dummy->next;
        }
    };
    

    在这里插入图片描述
    在这里插入图片描述

    如果有幸帮到你,请帮我点个【赞】,给个【关注】!如果能顺带【评论】给个鼓励,我将不胜感激。

    如果想要更多的资源,欢迎关注 @我是管小亮,文字强迫症MAX~

  • 相关阅读:
    构造函数
    Php基础知识测试题答案与解释
    bootstrap简介
    ajax删除数据(不跳转页面)
    ajax基础部分
    Jquery弹出窗口
    JSON
    Jquery之JSON的用法
    Jquery基本用法
    php购物车(练习)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302553.html
Copyright © 2020-2023  润新知