leetCode92 反转链表II

[TO 92. 反转链表II]

/*

  • 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。
    说明:
    1 ≤ m ≤ n ≤ 链表长度。
    示例:
    输入: 1->2->3->4->5->NULL, m = 2, n = 4
    输出: 1->4->3->2->5->NULL
    */

二、解法一

let reverseBetween = function(head, m, n) {
    function ListNode(val,next) {
        this.val=val||0;
        this.next=next||null
    }
    let pre=null,cur=head
    for (let i=1;i<m;i++) pre=cur,cur=cur.next
    let pre2=pre, cur2=cur
    for (let i=m;i<=n;i++) [cur.next,pre,cur]=[pre,cur,cur.next]
    if (pre2!==null) pre2.next=pre
    else head=pre
    cur2.next=cur
    return head
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值