题解 | 链表内指定区间反转

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param m int整型 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode reverseBetween (ListNode head, int m, int n) {
        // write code here
        if(head==null){
            return head;
        }
        ListNode headFirst=new ListNode(-1);
        headFirst.next=head;
        ListNode left=head;
        ListNode pre=headFirst;
        for(int i=1;i<m;i++){
            left=head.next;
            pre=pre.next;
            head=head.next;
        }
        ListNode right=left;
        ListNode cur=left;
        ListNode headB=null;
        for(int j=m;j<=n;j++){
            ListNode nextB=cur.next;
            cur.next=headB;
            headB=cur;
            cur=nextB;
        }
        pre.next=headB;
        right.next=cur;
        return headFirst.next;
    }
}

全部评论

相关推荐

找工作前&nbsp;你要想好&nbsp;未来5年后,你打算做什么。如果你想就找个稳定的工作,那我建议你考个985研究生,专门去研究某一领域&nbsp;,毕业就按这个方向去投简历,最好在上学期间做个自己实验小产品,那面试拿产品更有说服力。如果你想创业,我建议找个创业型公司,但是要求就是你能接触到整个项目,目的不是钱,是为了5年后你能积累足够的知识。这种公司不能太抠门,我指的是研发经费不能少,你可以工资少,但是研发经验不能扣扣搜搜,到时候你学习买材料都不给拨款,那就没什么意义选择创业型,这种可能不适合大部分人,首先你要问你自己,对这行是不是真的感兴趣,如果你只为了工作而工作,最好别去这种创业型公司。你记住一句话,工作为了你自己以后有更好的发展,钱少,没关系&nbsp;但是我要学到东西。如果你下班都不能拿出精力去学习,只能说你可能不适合创业。还是找个稳定工作上班为好。楼主之所以能研究2天3夜&nbsp;去解决问题,最大原因是我喜欢这行,我非常喜欢自己做点小产品以达到自己内心的满足感。可以说,不是为了钱,就是兴趣爱好使然。还有两句话&nbsp;,一直激励我:1.&nbsp;书山有路勤为径&nbsp;学海无涯苦作舟我自认为我足够聪明,学习能力超强,应该超过60%人的智商了,不过我还是很勤奋。能静下心去专心做一件事。如果你们想成功,就必须达到忘我的境界。2&nbsp;多年后你会感激当初那么奋斗的自己!当你到死的前一天,你回想你这辈子所有经历,你觉得你没白活,你作为一个人&nbsp;值得了。不是行尸走肉。我这人信神学,我觉得有平行世界,我们每天做梦可能会看到平行世界的自己。所以我对死亡无所畏惧,但是我要活得有意义。这辈子我设计很多产品,走过很多地方,教育好下一代,这就是我人生目标很多人私信我,想转行,看到我写的这些,还是有些疑惑,我再此给些建议吧。1&nbsp;计算机,通信,电气自动化专业&nbsp;转到嵌入式这类人相比于土木生化跳专业转这行相对来说要容易得多。有很多优势。这些专业学过c语言,大学物理,高中物理,理解计算机基础部分,上手容易。具体想转行的,参照我之前楼层写的&nbsp;怎么从入门开始学,一共6步。具体要转偏软件还是偏硬件,这个具体要看个人,如果说想短期上手挣钱,我建议转偏软,也就是linux,安卓这些。但是这种岁数大会有职业危机,可替代性强。如果说想长期从事嵌入式行业,并且还能静下心学习,不怕辛苦,这种不是三天打鱼&nbsp;两天晒网&nbsp;要持之以恒这种,我建议转偏硬件,这种偏硬件在未来可以选择自己创业,也可以选择在不断提高技术后,跳槽到大公司。这种越老越吃香,但是很困难。起码要5-8年&nbsp;成为大手。具体看个人情况而定。另外大家不要心血来潮去干一件事,一定要深思熟虑后再做决定,要热爱这行&nbsp;,你才能学好!如果是土木生化&nbsp;想转到嵌入式,说实话,我不太建议转,首先大学没怎么接触c语言,单片机这些基础知识,转行很费劲。其次,360行行行出状元,我认为任何行业都能挣钱,但是如果大环境不好,要善于观察,看准什么方面挣钱,抓紧风口。如果说硬要转,我建议报班转偏软件,硬件能把人弄疯的,什么都没有准确答案,程序写对了,电路没设计好,也会出问题。但是偏软件的,没有硬件这些额外因素,相对来说问题小很多。另外刚毕业有条件可以考虑&nbsp;gwy,部队文职,选调生&nbsp;这些,不用非干技术不可,理想很丰满&nbsp;现实很骨感&nbsp;,毕竟要挣钱吃饭的。沈阳有900万人口,做我们这行精通的几千人都没有,所以嘛&nbsp;有铁饭碗的,我建议去。想好自己职业规划,三思而行。最后呢大家可以看看专栏
投递360集团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务