LeetCode 92.反转链表II

题目

给你单链表的头指针 head 和两个整数 leftright ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表

方法:灵神 反转链表

代码:

java 复制代码
class Solution {
    public ListNode reverseBetween(ListNode head, int left, int right) {
        ListNode dummy = new ListNode(0, head), p0 = dummy;
        int n = left - 1;
        while (n-- > 0) {
            p0 = p0.next; // p0 保存开始翻转的前一个节点,后面操作需要用到
        }
        ListNode pre = null, cur = p0.next;
        for (int i = 0; i < (right - left + 1); i++) {
            ListNode next = cur.next;
            cur.next = pre;
            pre = cur;
            cur = next;
        }
        p0.next.next = cur;
        p0.next = pre;
        return dummy.next;
    }
}
相关推荐
ZPC82103 小时前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82103 小时前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
琢磨先生David3 小时前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
颜酱3 小时前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题
javascript·后端·算法
多恩Stone3 小时前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
生信大杂烩3 小时前
癌症中的“细胞邻域“:解码肿瘤微环境的空间密码 ——Nature Cancer 综述解读
人工智能·算法
蜡笔小马3 小时前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
m0_531237174 小时前
C语言-数组练习进阶
c语言·开发语言·算法
超级大福宝4 小时前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
Wect4 小时前
LeetCode 530. 二叉搜索树的最小绝对差:两种解法详解(迭代+递归)
前端·算法·typescript