首页 > 其他分享 >BM2 链表内指定区间反转

BM2 链表内指定区间反转

时间:2022-09-21 13:33:08浏览次数:57  
标签:pre BM2 head ListNode int 反转 next 链表

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseBetween(ListNode head, int m, int n) {
        ListNode dummy = new ListNode(-1);  // 哑巴节点,指向链表的头部
        dummy.next = head;
        ListNode pre = dummy;  // pre 指向要翻转子链表的前驱节点
        for (int i = 1; i < m; ++i) {
            pre = pre.next;
        }
        head = pre.next;  // head指向翻转子链表的首部
        ListNode next;
        for (int i = m; i < n; ++i) {
            next = head.next;
            // head节点连接next节点之后链表部分,也就是向后移动一位
            head.next = next.next;
            // next节点移动到需要反转链表部分的首部
            next.next = pre.next;
            // pre继续为需要反转头节点的前驱节点
            pre.next = next;
        }
        return dummy.next;
    }
}

标签:pre,BM2,head,ListNode,int,反转,next,链表
From: https://www.cnblogs.com/chenjo/p/16715283.html

相关文章

  • spring理解控制反转
    理解控制反转1、创建一个dao层创建一个UserDao接口packagedao;//dao层是调用数据库的publicinterfaceUserDao{voidgetUserDao();}创建一个UserDao的......
  • Java中如何数组进行反转呢?
    下文笔者将讲述java代码数组反转的方法分享,如下所示:数组是我们日常开发中常用过的一种数据结构,那么我们如何将一个数组反转操作呢?下文笔者借助栈对象的先进后出的特性,......
  • java中创建链表数组
    importjava.util.ArrayList;importjava.util.LinkedList;publicclassmain{publicstaticvoidmain(String[]args){LinkedListlist1=ne......
  • 算法—链表合并问题
    题目:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解法一:递归publicListNodemergeTwoLists(ListNodelist1,......
  • 力扣92(java&python)-反转链表Ⅱ(中等)
    题目:给你单链表的头指针head和两个整数 left和right,其中 left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例1:输入:head=......
  • 13 从磁盘读取数据页到Buffer Pool的时候,free链表有什么用?
    1.数据库启动的时候,是如何初始化BufferPool的?数据库一启动就会按照你设置的BufferPool的大小,在操作系统里分配一块内存区域,作为BufferPool内存区域当内存区域申请完毕......
  • 2415. 在 JavaScript 中反转二叉树的奇数层
    2415.在JavaScript中反转二叉树的奇数层鉴于根一个完美的二叉树,反转每个节点的值奇怪的树的层次。例如,假设第3层的节点值为[2,1,3,4,7,11,29,18],那么它应......
  • LeetCode链表翻转
    SwapNodesinPairsLeetCode/力扣递归交换之后,直接交换下一个节点ListNode*swapPairs(ListNode*head){if(head&&head->next){swap(head->val,......
  • leetcode 2415.反转二叉树的奇数层
    leetcode2415.反转二叉树的奇数层题目描述给你一棵完美二叉树的根节点root,请你反转这棵树中每个奇数层的节点值。例如,假设第3层的节点值是[2,1,3,4,7,11,29,1......
  • Go 双向链表
    1.双向链表的应用实例使用带head头的双向链表实现——王者容易英雄排行榜单向链表的缺点分析:1)单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找2)单向......