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;
    }
}
相关推荐
历程里程碑16 分钟前
LeetCode 560题:和为K子数组最优解
算法·哈希算法·散列表
qq_4017004131 分钟前
C/C++中的signed char和unsigned char详解
c语言·c++·算法
leoufung1 小时前
LeetCode 67. Add Binary:从面试思路到代码细节
算法·leetcode·面试
无限进步_1 小时前
【C语言】循环队列的两种实现:数组与链表的对比分析
c语言·开发语言·数据结构·c++·leetcode·链表·visual studio
wjykp1 小时前
79~87逻辑回归f
算法·机器学习·逻辑回归
聆风吟º1 小时前
【顺序表习题|图解|双指针】合并两个有序数组 + 训练计划 I
c语言·数据结构·c++·经验分享·算法
wa的一声哭了1 小时前
矩阵分析 方阵幂级数与方阵函数
人工智能·python·线性代数·算法·自然语言处理·矩阵·django
菩提祖师_1 小时前
基于MATLAB的心电信号处理与心律异常检测算法设计
算法·matlab·信号处理
foundbug9991 小时前
用ode45求解悬臂梁的动力学方程,得到其变形
算法
linsa_pursuer1 小时前
最长连续序列
java·数据结构·算法·leetcode