LeetCode 92.反转链表II

题目:

给你单链表的头指针 head 和两个整数 left 和 right ,其中 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;
    }
}
相关推荐
文丑颜不良啊7 小时前
LeetCode2221~2240题目解析
java·leetcode
Navigator_Z8 小时前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
D e re k ZH8 小时前
C++ 标准库算法全景指南
数据结构·c++·算法
冻柠檬飞冰走茶9 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
文丑颜不良啊9 小时前
LeetCode2161~2180题目解析
java·leetcode
雪落漂泊9 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
文丑颜不良啊11 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发11 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
严肃小白兔13 小时前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab