力扣面试150 反转链表 II 三指针

Problem: 92. 反转链表 II

👨‍🏫 参考题解

  • 特殊情况
Java 复制代码
/**
 * 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 {
    ListNode reverseBetween(ListNode head, int left, int right) {
        ListNode dummy = new ListNode(0, head);// 
        ListNode p0 = dummy;
        for(int i = 0; i < left - 1; i++)
            p0 = p0.next;
        ListNode pre = null;
        ListNode cur = p0.next; // 局部链表的第一个节点
        // 循环反转局部的链表
        for(int i = 0; i < right - left + 1; i++)
        {
            ListNode nxt = cur.next;
            cur.next = pre;
            pre = cur;
            cur = nxt;
        }
        // 处理局部链表的首尾与整体链表的衔接
        p0.next.next = cur;// p0.next 是局部链表的第一个节点
        p0.next = pre;//pre 局部链表的最后一个节点
        return dummy.next;
    }
}
相关推荐
superior tigre7 分钟前
739 每日温度
算法·leetcode·职场和发展
6Hzlia28 分钟前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
逻辑驱动的ken2 小时前
Java高频面试考点场景题17
开发语言·jvm·面试·求职招聘·春招
Fuly10242 小时前
java面试知识点复习
java·开发语言·面试
北顾笙9802 小时前
day37-数据结构力扣
数据结构·算法·leetcode
小程故事多_802 小时前
[大模型面试系列] 破解 Agent 软故障困局,四层防御 + 可观测性,筑牢生产级稳健性防线
人工智能·面试·职场和发展·智能体
嵌入式小企鹅2 小时前
嵌入式面试宝典
学习·面试·嵌入式·嵌入式工程师·高薪offer
6Hzlia4 小时前
【Hot 100 刷题计划】 LeetCode 189. 轮转数组 | C++ 三次反转经典魔法 (O(1) 空间)
c++·算法·leetcode
许彰午4 小时前
CacheSQL:一个面向政务系统的内存缓存数据库中间件
java·数据库·缓存·中间件·面试·开源软件·政务