leetcode链表问题_链表面试题

leetcode链表问题_链表面试题给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5] 提示:链表中节点数目为 n1 <= n <= 500-500

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
在这里插入图片描述

示例 1:


输入:head = [1,2,3,4,5], left = 2, right = 4
输出:[1,4,3,2,5]
示例 2:

输入:head = [5], left = 1, right = 1
输出:[5]
 

提示:

链表中节点数目为 n
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n

进阶: 你可以使用一趟扫描完成反转吗?

题解
找到left前继,right和后记,然后对于[left,right]中的区域进行头插法。最后判断pre是否有值。

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution { 
   
public:
    ListNode* reverseBetween(ListNode* head, int left, int right) { 
   
        if(left == right)return head;
        int num = 1;
        ListNode *pre = NULL,*end = NULL;
        ListNode * t = head;
        ListNode * a = NULL;
        while(num < left){ 
   
            if(num == left - 1)pre = t;
            num ++;
            t= t->next;
        }
        a = t;
        ListNode * tt = new ListNode(0,NULL);
        while(num <= right){ 
   
            ListNode * temp = t->next;
            t->next = tt->next;
            tt->next = t;
            t = temp;
            num ++;
        }
        end = t;
        a->next = end;
        if(pre != NULL)pre->next = tt->next;
        else return tt->next;
        return head;

    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java设计模式菜鸟系列(两)建模与观察者模式的实现

    Java设计模式菜鸟系列(两)建模与观察者模式的实现

    2022年1月12日
    46
  • mysql sql常用语句大全「建议收藏」

    mysql sql常用语句大全「建议收藏」一、常用操作数据库的命令1.showdatabases;查看所有的数据库2.createdatabasetest;创建一个叫test的数据库3.dropdatabasetest;删除一个叫test的数据库4.usetest;选中库,在建表之前必须要选择数据库5.showtables;在选中的数据库之中查看所有的表6.createtable表名(字段1…

    2022年4月29日
    55
  • pycharm中替换快捷键_python函数参数的四种类型

    pycharm中替换快捷键_python函数参数的四种类型查找:CTRL+F替换:CTRL+R如果想删除,替换那一栏不填就可以了转载于:https://www.cnblogs.com/mghhzAnne/p/9324406.html

    2022年8月28日
    0
  • jsp实现表单提交跳转「建议收藏」

    jsp实现表单提交跳转「建议收藏」页面介绍login.jsp用户登录页面,提交给process.jsp。process.jsp处理页面,若用户名为“admin”,密码为“000”,则跳转到show.jsp,否则跳转login.jsp。show.jsp列出登录页面的属性。源代码login.jsp<formaction=”process.jsp”method=”post”>…

    2022年10月1日
    0
  • 网站seo如何优化效果好_网站seo运营

    网站seo如何优化效果好_网站seo运营有些人会觉得,营销型网站不用做优化了,这是一个误区。就像不是所有有商城网站的公司都是电子商务公司一样,不是营销型网站就一定营销做得很好不需要优化。营销型网站优化是对营销型网站进行程序、内容、版块、布局等多方面的优化调整,也就是搜索互联网站设计时适合搜索引擎检索,满足搜索引擎排名的指标,从而在搜索引擎检索中获得NNT流量排名靠前,增强搜索引擎营销的效果使营销型网站的产品相关的关键词能有好的排位。使营…

    2022年9月14日
    0
  • 如何通过 OIDC 协议实现单点登录?[通俗易懂]

    如何通过 OIDC 协议实现单点登录?[通俗易懂]什么是单点登录我们通过一个例子来说明,假设有一所大学,内部有两个系统,一个是邮箱系统,一个是课表查询系统。现在想实现这样的效果:在邮箱系统中登录一遍,然后此时进入课表系统的网站,无需再次登录,课表网站系统直接跳转到个人课表页面,反之亦然。比较专业的定义如下:单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中…

    2022年10月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号