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

网站开发年度总结工作制作手工作品

网站开发年度总结工作,制作手工作品,局强化网站建设和管理,广州 网站开发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.dtcms.com/wzjs/806320.html

相关文章:

  • 专业企业网站建设公司价格北京科技公司排名
  • 优动网站重庆建设工程信息网怎么录入备案
  • 山东省城乡建设部网站六安网站制作金狮
  • 用什么程序做视频网站大连省建设厅网站
  • 优秀网站psd专业群建设方案
  • 做用户运营应该关注哪些网站做跨境电商网站
  • 一个一起做网站精品源码网
  • 网站开发视频代码取消网站备案制度
  • 百度建立自己的网站软件开发模型包括
  • 购物网站的英文wordpress+百度云图安装
  • 湖北建设信息网站学设计网站推荐
  • 画家个人网站建设关键词优化排名公司
  • OA网站建设分析医院网站 行风建设
  • 大石桥网站制作自己做网站名电子章违法吗
  • 网站同时使用asp php育儿哪个网站做的好
  • 做公司网站需要花钱吗成都空间设计公司
  • 滴滴友链龙岩seo包年系统排行榜
  • 哪里做网站百度收录块百度seo2022
  • 做销售的如何在网站做网站的一些话术
  • photoshop网站模板seo搜索优化
  • 没有服务器怎么先做网站网页建设与网站设计心德体会
  • 南宁青秀万达网站建设推荐一些做网站网络公司
  • 网站最合适的字体大小wordpress font-spider
  • iis网站的建设制作网站哪家专业
  • 网站调用优酷视频去除广告制作一个网站大概需要多少钱
  • 永康做网站的需要服务器的网站
  • 设计师网站有哪些销售定制家具淘宝做网站推广
  • 小型手机网站建设国内跨境电商平台有哪些?
  • 淄博网站制作商业网站可以选择.org域名吗
  • 贵州省住房和城乡建设厅官方网站做一个高端网站多少钱