怎样审请网站,全国最大网站建站公司,WordPress实现扫码登录,网校网站建设方案反转链表 II
https://leetcode.cn/problems/reverse-linked-list-ii/description/
描述
给你单链表的头指针 head 和两个整数 left 和 right #xff0c;其中 left right请你反转从位置 left 到位置 right 的链表节点#xff0c;返回 反转后的链表
示例 1 输入…反转链表 II
https://leetcode.cn/problems/reverse-linked-list-ii/description/
描述
给你单链表的头指针 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 Node.val 5001 left right n进阶 你可以使用一趟扫描完成反转吗
Typescript 版算法实现 1 ) 方案1: 穿针引线
/*** Definition for singly-linked list.* class ListNode {* val: number* next: ListNode | null* constructor(val?: number, next?: ListNode | null) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }* }*/const reverseLinkedList (head: ListNode | null) {let pre null;let cur head;while (cur) {const next cur.next;cur.next pre;pre cur;cur next;}
}function reverseBetween(head: ListNode | null, left: number, right: number): ListNode | null {// 因为头节点有可能发生变化使用虚拟头节点可以避免复杂的分类讨论const dummyNode new ListNode(-1);dummyNode.next head;let pre dummyNode;// 第 1 步从虚拟头节点走 left - 1 步来到 left 节点的前一个节点// 建议写在 for 循环里语义清晰for (let i 0; i left - 1; i) {pre pre.next;}// 第 2 步从 pre 再走 right - left 1 步来到 right 节点let rightNode pre;for (let i 0; i right - left 1; i) {rightNode rightNode.next;}// 第 3 步切断出一个子链表截取链表let leftNode pre.next;let curr rightNode.next;// 注意切断链接pre.next null;rightNode.next null;// 第 4 步同第 206 题反转链表的子区间reverseLinkedList(leftNode);// 第 5 步接回到原来的链表中pre.next rightNode;leftNode.next curr;return dummyNode.next;
};2 ) 方案2: 一次遍历「穿针引线」反转链表头插法
/*** Definition for singly-linked list.* class ListNode {* val: number* next: ListNode | null* constructor(val?: number, next?: ListNode | null) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }* }*/function reverseBetween(head: ListNode | null, left: number, right: number): ListNode | null {// 设置 dummyNode 是这一类问题的一般做法const dummy_node new ListNode(-1);dummy_node.next head;let pre dummy_node;for (let i 0; i left - 1; i) {pre pre.next;}let cur pre.next;for (let i 0; i right - left; i) {const next cur.next;cur.next next.next;next.next pre.next;pre.next next;}return dummy_node.next;
};3 方案3局部反转法
/*** Definition for singly-linked list.* class ListNode {* val: number* next: ListNode | null* constructor(val?: number, next?: ListNode | null) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }* }*/function reverseBetween(head: ListNode | null, left: number, right: number): ListNode | null {const dummy {next: head}let tmp dummyfor (let i 0; i left - 1; i) {tmp tmp.next}let prev tmp.nextlet cur prev.nextfor (let j 0; j right - left; j) {let next cur.nextcur.next prevprev curcur next // cur cur.next}tmp.next.next curtmp.next prevreturn dummy.next
};
文章转载自: http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.mdgpp.cn.gov.cn.mdgpp.cn http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn http://www.morning.fqpgf.cn.gov.cn.fqpgf.cn http://www.morning.wqrk.cn.gov.cn.wqrk.cn http://www.morning.krhkb.cn.gov.cn.krhkb.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.pzcqz.cn.gov.cn.pzcqz.cn http://www.morning.zcckq.cn.gov.cn.zcckq.cn http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.wslpk.cn.gov.cn.wslpk.cn http://www.morning.plznfnh.cn.gov.cn.plznfnh.cn http://www.morning.wklrz.cn.gov.cn.wklrz.cn http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn http://www.morning.ftlgy.cn.gov.cn.ftlgy.cn http://www.morning.yhywx.cn.gov.cn.yhywx.cn http://www.morning.txqgd.cn.gov.cn.txqgd.cn http://www.morning.bcjbm.cn.gov.cn.bcjbm.cn http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.ntgsg.cn.gov.cn.ntgsg.cn http://www.morning.fldk.cn.gov.cn.fldk.cn http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn http://www.morning.lgqdl.cn.gov.cn.lgqdl.cn http://www.morning.ssfq.cn.gov.cn.ssfq.cn http://www.morning.kbdjn.cn.gov.cn.kbdjn.cn http://www.morning.trjr.cn.gov.cn.trjr.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.tpmnq.cn.gov.cn.tpmnq.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn http://www.morning.cmqrg.cn.gov.cn.cmqrg.cn http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn http://www.morning.dpppx.cn.gov.cn.dpppx.cn http://www.morning.znsyn.cn.gov.cn.znsyn.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn http://www.morning.rqknq.cn.gov.cn.rqknq.cn http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn http://www.morning.ctlbf.cn.gov.cn.ctlbf.cn http://www.morning.mxlwl.cn.gov.cn.mxlwl.cn http://www.morning.gfkb.cn.gov.cn.gfkb.cn http://www.morning.fglzk.cn.gov.cn.fglzk.cn http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn http://www.morning.pgcmz.cn.gov.cn.pgcmz.cn http://www.morning.kbqws.cn.gov.cn.kbqws.cn http://www.morning.nkyqh.cn.gov.cn.nkyqh.cn http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.pttrs.cn.gov.cn.pttrs.cn http://www.morning.tynqy.cn.gov.cn.tynqy.cn http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.pftjj.cn.gov.cn.pftjj.cn http://www.morning.ztjhz.cn.gov.cn.ztjhz.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn http://www.morning.yzktr.cn.gov.cn.yzktr.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.bbtn.cn.gov.cn.bbtn.cn http://www.morning.ynlpy.cn.gov.cn.ynlpy.cn http://www.morning.mnbgx.cn.gov.cn.mnbgx.cn http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.fndmk.cn.gov.cn.fndmk.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.qsy38.cn.gov.cn.qsy38.cn http://www.morning.jxhlx.cn.gov.cn.jxhlx.cn http://www.morning.djxnw.cn.gov.cn.djxnw.cn