链表内指定区间反转

将一个链表m位置到n位置之间的区间反转,要求时间复杂度 ,空间复杂度 。
例如:
给出的链表为1→2→3→4→5→NULL,
返回1→4→3→2→5→NULL.
注意:
给出的m,n满足以下条件:
链表长度1≤m≤n≤链表长度

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param m int整型 
  * @param n int整型 
  * @return ListNode类
  */
function reverseBetween( head ,  m ,  n ) {
    // write code here
    var top = {}
    top.next = head
    var pre = top
    var cur = head
    for(var i=0;i<m-1;i++){
        pre = pre.next
        cur = cur.next
    }
    for(var j=0;j<n-m;j++){
        var temp = cur.next
        cur.next = temp.next
        temp.next = pre.next
        pre.next = temp
    }
    return top.next
}
module.exports = {
    reverseBetween : reverseBetween
};
链表算法 文章被收录于专栏

链表相关算法

全部评论

相关推荐

01-11 08:47
门头沟学院 Java
程序员花海_:所以看起来还是实习的好处多 给导师打黑工能学到什么
点赞 评论 收藏
分享
白火同学:1、简历可以浓缩成一页,简历简历先要“简”方便HR快速过滤出有效信息,再要“历”用有效信息突出个人的含金量。 2、教育背景少了入学时间~毕业时间,HR判断不出你是否为应届生。 3、如果你的平台账号效果还不错,可以把账号超链接或者用户名贴到对应位置,一是方便HR知道你是具体做了什么内容的运营,看到账号一目了然,二是口说无凭,账号为证,这更有说服力。
面试被问期望薪资时该如何...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务