力扣面试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;
    }
}
相关推荐
不会就选b3 小时前
算法日常・每日刷题--贪心<11>
算法·leetcode·职场和发展
青山木5 小时前
Hot 100 --- 打家劫舍
java·数据结构·算法·leetcode·动态规划
敲代码的嘎仔5 小时前
28届后端开发-百人小厂面试题
java·后端·面试·程序员·秋招·实习·转正
阿明65 小时前
Leetcode: 283. 移动零
算法·leetcode·职场和发展
ocean21035 小时前
2025-2026年Java语言及生态面试高频知识点洞察
java·开发语言·面试
6Hzlia6 小时前
【Classic 150 刷题计划】 LeetCode 134. 加油站 | C++ 贪心算法与局部否决逻辑
c++·leetcode·贪心算法
6Hzlia6 小时前
【Classic 150 刷题计划】 LeetCode 274. H 指数 | C++ 二分答案法 (单调性降维打击)
c++·算法·leetcode
青山木7 小时前
枚举类DP进阶:完全平方数与零钱兑换
java·数据结构·算法·leetcode·动态规划
写后端的胖头鱼7 小时前
【高频面试题】面试题里常出现的Bitmap是什么(附源码和多种场景)
java·开发语言·面试·位图·bitmap
huang5791478 小时前
从缓存行角度优化链表遍历:批处理与预取策略
数据结构·链表·缓存