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

遵义会议在线网站优化排名软件

遵义会议在线,网站优化排名软件,什么样的网站才是好网站,行业网站模版P206反转链表 原题 反转思路 将链表反转的过程分为两个区域: 🟦 未反转区(待处理) 原链表中还没有处理(还没有反转指针方向)的部分,从 current 开始一直到链表尾部。 🟩 已反转…

P206反转链表

原题
在这里插入图片描述

反转思路
将链表反转的过程分为两个区域:

🟦 未反转区(待处理)

原链表中还没有处理(还没有反转指针方向)的部分,从 current 开始一直到链表尾部。

🟩 已反转区(处理完成)

已经反转过来的部分,从 previous 开始,指针方向已经翻转。


我们以一个例子来解释:
假设初始链表是:1 -> 2 -> 3 -> 4 -> 5 -> null


初始状态:

🟩 已反转区:null
🟦 未反转区:1 -> 2 -> 3 -> 4 -> 5 -> null↑current

第一次循环后:

  • currentnext 改指向 previous,也就是让 1 -> null
  • 然后指针往前推进:
🟩 已反转区:1 -> null
🟦 未反转区:2 -> 3 -> 4 -> 5 -> null↑current

第二次循环后:

  • 2 -> 1
  • 指针继续前进
🟩 已反转区:2 -> 1 -> null
🟦 未反转区:3 -> 4 -> 5 -> null↑current

第三次循环后:

🟩 已反转区:3 -> 2 -> 1 -> null
🟦 未反转区:4 -> 5 -> null↑current

第四次循环后:

🟩 已反转区:4 -> 3 -> 2 -> 1 -> null
🟦 未反转区:5 -> null↑current

第五次(最后)循环前:

此时 next == nullcurrent 指向最后一个节点 5。我们还要将 current.next = previous,也就是 5 -> 4

🟩 已反转区:5 -> 4 -> 3 -> 2 -> 1 -> null
🟦 未反转区:null

总结逻辑流程:

  1. 用三个指针遍历链表(previouscurrentnext
  2. 每次循环把 current 指向 previous,并向前推进
  3. 循环终止时,current 是原链表的尾部,也就是反转后的头部

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

public ListNode reverseList(ListNode head) {// 如果链表为空或者链表只有一个节点,直接返回头节点if (head == null || head.next == null) {return head;}// 初始化三个指针:// current 指向当前节点// next 指向下一个节点(即 current 的下一个节点)// previous 用来记录前一个节点(初始时为空)ListNode current = head;  // 当前节点ListNode next = current.next;  // 下一个节点ListNode previous = null;  // 反转后的部分链表的尾部(初始化为空)// 遍历链表,直到 next 为 null,即遍历完所有节点while (next != null) {// 将 current 的 next 指向 previous,反转当前节点current.next = previous;// 移动 previous 和 current,准备反转下一个节点previous = current;  // previous 向前移动,变成当前节点current = next;  // current 向前移动,变成下一个节点next = next.next;  // next 向前移动,变成下一个节点的下一个节点}// 最后,current(原始链表的最后一个节点)指向反转后的链表的头部current.next = previous;// 返回新的链表头节点return current;
}

时间复杂度O(N)
空间复杂度O(1)


递归实现

思路:通过递归将链表的尾部逐步返回,等递归到底(也就是 head.next == null)时,从尾节点开始一步步回溯。在回溯过程中,将当前节点的 next.next 指向自身,相当于逐步反转指针方向,同时把自己的 next 指向 null 来断链,最终形成完整的反转链表。

public ListNode reverseList(ListNode head) {if(head==null||head.next==null){return head;}List next=reverseList(head.next);head.next.next=head;//反转head.next=null;return next;	
}

时间复杂度O(N)
空间复杂度ON)

http://www.cadmedia.cn/news/14392.html

相关文章:

  • 如何做微信网站建设桔子seo工具
  • 泉州建站软件新手怎么引流推广推广引流
  • 东北网站建设百度网址大全旧版
  • 建设网站的基本流程是什么sem工作原理
  • 中国建设银行官网下载中心seo网站免费优化软件
  • 制作微网站公司搜狗网址导航
  • 电子商务网站建设方乔拓云智能建站官网
  • net112企业建站系统最好的搜索引擎
  • 免费b站在线观看人数在哪里制作一个网站步骤
  • 陇城科技网站建设长沙靠谱seo优化价格
  • 网站建设 教学视频想要导航推广网页怎么做
  • 黑龙江龙采做网站如何国内营销推广渠道
  • 阿里云Ubuntu安装WordPressseo一键优化
  • 网站建设 qq业务网制作百度软件下载中心官方网站
  • 海口网站建设fwlit广州google推广
  • 网站规划建设与管理维护论文一件代发48个货源网站
  • 乌鲁木齐企业网站建设公司做销售最挣钱的10个行业
  • 做网站怎么选云主机廊坊seo排名公司
  • 怎么打开手机app学校seo推广培训班
  • 重庆梁平网站建设公司简阳seo排名优化课程
  • 最权威的做网站的公司哪家好营销型网站制作成都
  • 长沙仿站模板网站建设交换链接的其它叫法是
  • 学校网站 建设 价格2021时事政治热点50条
  • 深圳推广公司哪家最好单页网站怎么优化
  • 美轮美奂的网站建设电脑优化大师官方免费下载
  • 江苏首天建设集团网站企业站seo案例分析
  • 贵州网络公司网站建设数据分析师就业前景
  • 济南建设集团网站网站推广方法大全
  • 运城网站建设公司有多少手机百度旧版本下载
  • 网站运营与管理的对策公司网页怎么做