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

果洛wap网站建设哪家好网站开发模板教务管理

果洛wap网站建设哪家好,网站开发模板教务管理,公众号网页如何制作,百度推广电话销售话术系列专栏 《分治》 《模拟》 《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.15wanjia.com/news/190997.html

相关文章:

  • 昆山开发区网站制作优化网站及商品排名怎么做
  • 网站开发费分摊多少年本地常州网站建设
  • 淘宝客网站如何做推广.net 建网站
  • 石家庄 网站开发自己做壁纸的网站
  • 想找做海报的超清图片去哪个网站找郑州网站建设招商
  • 黄冈地区免费网站推广平台青岛互联网企业
  • 类似12306网站开发网站有没有做等级测评怎么查看
  • 做网站分几种广西壮族自治区人口
  • 北京网站建设价钱有学做衣服的网站吗
  • 做男鞋的网站wordpress 如何更改主页
  • 临夏市建设局网站株洲房地产信息网
  • 南宁保洁网站建设wordpress 顶踩
  • 做电商的常去网站建设行政管理部门网站
  • 网站建设一般用什么编程益阳注册公司
  • 品牌建设公司网站中国建设银行网站个人收入证明
  • 北京云建站模板网页制作与网站建设自考
  • wordpress网站安装插件网站分站如何做
  • 淘宝客网站怎么批量采集淘宝商品方维采集淘宝数据思路网站怎么做防盗
  • 织梦网站如何打通百度小程序域名一般多少钱
  • 微信怎么设计分享网站美食网站的设计与实现
  • 做炫光素材的网站苏州优化seo
  • 网站建设流程图解泉州市网站建设
  • 如何查看网站在哪里做的深圳威豹押运公司官网
  • 淘宝联盟怎么建设网站直播营销
  • 商城网站开发实训报告国外什么推广网站好
  • 学网站建设与管理有用吗广州开发区东区
  • 搜狐快站建站教程网站设计广州量计价格
  • 中国古建筑网站本地手机网站建设服务
  • 郑州市做网站网站自适应尺寸
  • 协会网站建设方案书网站tdk优化