看一百遍美女,美女也不一定是你的。但你刷一百遍算法,知识就是你的了~~
谁能九层台,不用累土起。
题目
给你单链表的头指针head和两个整数left和right,其中left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。
示例 1:
1 | 输入:head = [1,2,3,4,5], left = 2, right = 4 |
示例 2:
1 | 输入:head = [5], left = 1, right = 1 |
提示:
- 链表中节点数目为
n1 <= n <= 500-500 <= Node.val <= 5001 <= left <= right <= n
解题思路
- 找到开始反转的节点
left,记录下反转的前驱节点con以及反转开始的节点(也是反转部分的尾结点)tail - 开始反转操作
- 反转到
right,此时反转的链表最后的一个节点(也是反转部分的头结点)为pre,后置节点cur - 将我们一开始记录的前驱节点
con指向pre,反转部分的尾结点tail指向cur便可完成解题
解题代码
1 | var reverseBetween = function(head, left, right) { |