92. 反转链表 IIhttps://leetcode.cn/problems/reverse-linked-list-ii/
难度中等1382
给你单链表的头指针 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]
提示:
- 链表中节点数目为
n
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n
进阶: 你可以使用一趟扫描完成反转吗?
通过次数334,001提交次数601,179
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseBetween(ListNode head, int left, int right) {
// 一次遍历
ListNode node = new ListNode();
node.next = head;
head = node;
int i=1;
ListNode end=null;
while(node!=null)
{
if(i<left)
{
i++;
node = node.next;
}
else if(i>=left && i<right)
{
if(i==left) end = node.next;
ListNode temp = end.next;
end.next = temp.next;
temp.next = node.next;
node.next = temp;
i++;
}
else if(i==right)
{
// end.next = temp;
// System.out.println(temp.val);
return head.next;
}
}
return head.next;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/68955.html