当前位置: 首页 > news >正文

c 博客网站开发教程竞价托管公司联系方式

c 博客网站开发教程,竞价托管公司联系方式,虎门营销型网站建设,qq钓鱼网站建设系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法 (双指针) 4、代码 是 206. 反转链表 - 力扣(LeetCode)的类型题,且难度提升,可以先完成206,然后参照206的…

 系列专栏

《分治》

《模拟》

《Linux》


目录

1、题目链接 

2、题目介绍

3、解法 (双指针)

4、代码


是 206. 反转链表 - 力扣(LeetCode)的类型题,且难度提升,可以先完成206,然后参照206的思路,解决本题。

1、题目链接 

 92. 反转链表 II - 力扣(LeetCode)

2、题目介绍

3、解法 (双指针)

  1. 创建虚拟节点
    • 为了简化边界情况的处理,尤其是当left为1时,即需要翻转的链表部分从头节点开始,此时我们难以直接操作头节点。因此,我们创建一个虚拟节点dummy,其next指向原链表的头节点head。这样,我们总可以操作dummy->next而无需担心修改原始头节点。
  2. 定位left位置的前一个节点
    • 我们需要遍历链表直到left-1的位置,以便找到left位置节点的前一个节点。这个节点在后续翻转过程中将作为新链表的尾部节点(因为它后面接的是需要翻转的部分),并且在翻转完成后,它将指向翻转后部分的新头节点。
    • 变量cur用于遍历链表,直到它指向left位置的前一个节点。
    • 终止位置是left-1。
  3. 准备翻转
    • pre指向left位置的节点,这是翻转部分的起始节点。
    • lLEFT存储left位置前一个节点的引用,这样在翻转后,我们可以将其与翻转后的链表部分重新链接。
  4. 执行翻转
    • 我们需要翻转从leftright的节点。
    • 使用三个指针pre(当前节点的前一个节点),pre->next(当前节点),和tmp(当前节点的下一个节点)。
    • 翻转操作通过改变节点间的next指针来实现:将当前节点的next指向它的前一个节点pre,然后移动precur指针到下一个节点。
    • 循环继续直到cur到达right位置的节点。此时,pre指向right位置的下一个节点,而cur指向right位置的节点。
  5. 重新链接
    • 翻转完成后,我们需要将翻转后的部分与链表的其他部分重新链接。
    • lLEFT->next->next指向right位置之后的节点(即pre),这是因为lLEFT->next现在是翻转部分的新头节点(原right位置的节点),而我们需要将它的next指向翻转部分之后的节点。
    • lLEFT->next指向翻转部分的新头节点(即原right位置的节点,现在的cur)。
  6. 返回结果
    • 虚拟节点dummynext指向原始链表的头节点或翻转后的新头节点(如果翻转从头部开始)。因此,返回dummy->next即可得到最终翻转后的链表。

4、代码

/*** 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) {ListNode* dummy = new ListNode(0);//虚拟结点dummy->next = head;ListNode* cur= dummy;//找到left位置的前一个结点for (int i = 0; i < left - 1; i++){cur = cur->next;}ListNode* pre = cur->next;ListNode* lLEFT= cur;//用来存储left位置的前一个结点//翻转区域//保存头尾结点,方便之后和其他区域链接for (int i = left - 1; i < right; i++){ListNode* tmp = pre->next;pre->next = cur;cur = pre;//cur最后会是right对应的结点pre = tmp;//PRE最后会是right的下一个结点}//链接翻转区域lLEFT->next->next = pre;lLEFT->next = cur;return dummy->next;}
};

💗感谢阅读!💗


http://www.tj-hxxt.cn/news/67196.html

相关文章:

  • 如何自己做优惠卷网站宁波seo教程网
  • 动易与php环境架设网站成都新站软件快速排名
  • 公司网站下二级站点如何做流量大的推广平台有哪些
  • dede网站seoseo搜索优化是什么意思
  • 南戴河区网站建设哪家好产品软文代写
  • 私人让做彩票网站吗网络营销师报考条件
  • 网龙沧州网站制作shopify seo
  • 济南网站建设泉诺宁波网站推广公司有哪些
  • 四川省建设厅职称查询网站公司怎么做网络营销
  • 微信公众号做特效的网站宣传推广
  • 在国外社交网站做产品推广营销软文800字范文
  • wordpress 一键建站营销型网站建设需要多少钱
  • 免费微信网站建设网络营销的好处
  • 贵州省建设执业资格教育促进会网站河北百度推广seo
  • 网站建设框架百度一下你就知道原版
  • 怎么做狼视听网站seo是什么技术
  • 鄂州人民政府网站seo管理工具
  • 怎么做pc端移动网站好看的网页设计作品
  • b站做简介的网站营销和运营的区别是什么
  • 企业网站维护建设ppt百度seo详解
  • 报名网站建设百度竞价的优势和劣势
  • 以前做的网站怎么才能登陆后台百度一下首页设为主页
  • 网站 设计 工具网络推广项目外包公司
  • jsp网站建设毕业设计建设网官方网站
  • 金耀网站建设网站制作怎样做企业推广
  • wordpress响应速度太慢长春seo顾问
  • 橙色可以做哪些网站如何创建微信小程序
  • 控制网站的大量访问网络推广有多少种方法
  • 企业网站建设排名网址app推广员好做吗
  • 日本药妆电子商务网站建设规划书网易搜索引擎入口