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

链表内指定区间反转

https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

/*
 * 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 ) {
    if(m == n) return head;
    let node = new ListNode();
    node.next = head;
    let temp = node;
    let mNodePre;
    let i = 1;
    while(temp){
        if(i <= m) {
            mNodePre = temp;
            temp = temp.next;
        }else if(i <= n){
            //1 3 2 4 5
            let pre = mNodePre.next;
            let next = temp.next;
            temp.next = next.next;
            next.next = pre;
            mNodePre.next = next;
            if(i == n) break; 
        }
        i++;
    }
    return node.next;
}
module.exports = {
    reverseBetween : reverseBetween
};

全部评论

相关推荐

2025-12-10 19:36
湖北工业大学 Web前端
饿魔:看到在线简历了吧
点赞 评论 收藏
分享
2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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