Leetcode 92 反转链表II


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

在这里插入图片描述
提示:

  1. 链表中节点数目为 n
  2. 1 <= n <= 500
  3. -500 <= Node.val <= 500
  4. 1 <= left <= right <= n

进阶: 你可以使用一趟扫描完成反转吗?

题解1 一遍遍历(穿针引线)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
   
public:
    ListNode* reverseBetween(ListNode* head, int left, int right) {
   
        if(left == right) return head;
        ListNode* dummynode = new ListNode(-1);
        dummynode->next = head;
        ListNode* pre = dummynode;
        for(int i = 0; i < left-1; i++)
            pre = pre->next; // 不要动
        ListNode* cur = pre->next; // 反转的第一个结点
        ListNode* nex;
        for(int i = 0; i < right-left; i ++){
   
            // 穿针引线:
            // cur是left对应的结点,没变过
            // 实际上每次操作都只和cur->next(nex)\pre->next\nex->next有关(3个链)
            nex = cur->next;
            cur->next = nex->next;
            nex->next = pre->next;

            pre->next = nex;
        }
        return dummynode->next;


    }
};

在这里插入图片描述

相关推荐

  1. leetcode 92. II

    2023-12-07 22:56:03       11 阅读
  2. 【递归】 92. II

    2023-12-07 22:56:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 22:56:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 22:56:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 22:56:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 22:56:03       18 阅读

热门阅读

  1. Leetcode 538 把二叉搜索树转换为累加树

    2023-12-07 22:56:03       40 阅读
  2. Vs创建空白Qt项目

    2023-12-07 22:56:03       26 阅读
  3. 《C++新经典设计模式》之附录A 类和对象

    2023-12-07 22:56:03       26 阅读
  4. Spring JdbcTemplate

    2023-12-07 22:56:03       27 阅读
  5. 30+程序员应该如何养生+养身体

    2023-12-07 22:56:03       37 阅读
  6. 【Erlang进阶学习】3、列表推导

    2023-12-07 22:56:03       38 阅读
  7. AIGC: 关于ChatGPT中的API调用模型

    2023-12-07 22:56:03       29 阅读
  8. arm linux 平台 打开摄像头矫正

    2023-12-07 22:56:03       35 阅读
  9. openGL 三:矩阵和向量

    2023-12-07 22:56:03       32 阅读
  10. C++标准库+Windows API+UBUNTU API

    2023-12-07 22:56:03       35 阅读
  11. sass 学习笔记

    2023-12-07 22:56:03       31 阅读