leetcode_92_反转链表
给你单链表的头节点 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-linked-list-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* 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 {
/*
思路:
将整段链表分为三部分
反转部分前,需要记录尾节点pre和头节点ans,用于拼接反转部分和返回整个链表
反转部分,需要记录头节点rehead和尾节点minend,用于与前一部分进行拼接和与后一部分进行拼接,使用头插法来倒置链表
反转部分后,需要记录头节点rhead,用于与中间部分进行拼接
*/
public ListNode reverseBetween(ListNode head, int left, int right) {
if(head.next==null||