力扣面试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;
    }
}
相关推荐
Lee川5 分钟前
解锁 JavaScript 的灵魂:深入浅出原型与原型链
javascript·面试
swipe40 分钟前
从原理到手写:彻底吃透 call / apply / bind 与 arguments 的底层逻辑
前端·javascript·面试
程序员清风3 小时前
小红书二面:Spring Boot的单例模式是如何实现的?
java·后端·面试
belhomme3 小时前
(面试题)Redis实现 IP 维度滑动窗口限流实践
java·面试
Lee川3 小时前
探索JavaScript的秘密令牌:独一无二的`Symbol`数据类型
javascript·面试
AAA梅狸猫3 小时前
消息入队 enqueueMessage
面试
zone77395 小时前
003:RAG 入门-LangChain 读取图片数据
后端·python·面试
zone77396 小时前
002:RAG 入门-LangChain 读取文本
后端·算法·面试
青青家的小灰灰6 小时前
从入门到精通:Vue3 ref vs reactive 最佳实践与底层原理
前端·vue.js·面试
over6976 小时前
从 URL 输入到页面展示:一次完整的 Web 导航之旅
前端·面试·架构