力扣面试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;
    }
}
相关推荐
Tisfy4 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
小江的记录本5 小时前
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·mysql·spring·面试·职场和发展
暗冰ཏོ6 小时前
VUE面试题大全
前端·javascript·vue.js·面试
Cosolar8 小时前
RAG语义丢失?全链路优化通关宝典✅
人工智能·面试·llm
运筹vivo@9 小时前
LeetCode 2405. 子字符串的最优划分
c++·算法·leetcode·职场和发展·哈希表
豹哥学前端9 小时前
事件循环(Event Loop)深度解析:让你彻底搞懂 JS 的执行顺序
前端·javascript·面试
sheeta19989 小时前
LeetCode 每日一题笔记 日期:2026.05.19 题目:2540. 最小公共值
笔记·leetcode·排序算法
小江的记录本9 小时前
【Java基础】核心关键字:final、static、volatile、synchronized、transient(附《思维导图》+《面试高频考点清单》)
java·前端·数据结构·后端·ai·面试·ai编程
卷帘依旧11 小时前
AI场景下的SDD(Specification-Driven Development)
面试
洛宇11 小时前
(建议收藏)转型AI应用工程师之RAG:从入门到实战
前端·人工智能·面试