当前位置: 首页 > 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/362926.html

相关文章:

  • 俄罗斯在线 网站制作今天的最新新闻内容
  • 苏州网络公司工作室沈阳网站seo
  • 域名过期做的网站怎么办武汉网络seo公司
  • 安徽建设厅网站官网抖音视频排名优化
  • 2013年12月23日中央农村工作会议衡水seo优化
  • 网站建设公司模版网站维护是做什么的
  • 邯郸网站建设推广广告平台
  • 如何建自己网站做淘宝客杭州企业seo
  • 做视频网站把视频放在哪里南京网站设计
  • 广州高端网站建设移动营销
  • 苏州做代驾司机哪个网站好seo免费优化工具
  • 网站备案证图片b站推广网站2024mmm
  • 韩城市网站建设局电话百一度一下你就知道
  • 甘孜建设网站网址大全实用网址
  • 广东建设安全协会网站怎么设计网站
  • 淘客网站开发教程百度pc端入口
  • 深圳网站制作的结构优化是什么意思
  • wordpress 修改入口文件广州seo推广优化
  • 日本做美食视频网站有哪些广州谷歌优化
  • 专业微信网站建设公司首选公司哪家好企业网站推广技巧
  • 青浦专业做网站2345网址导航智能主板
  • 侨联网站建设方案上海关键词优化公司哪家好
  • 做有关兼职网站的需求分析网站转让出售
  • 沈阳网站建设德泰诺腾讯企业qq官网
  • 番禺网站开发系统跨境电商seo
  • 成都网站制作网站百度地图推广怎么收费标准
  • b2c电子网站建设优化的定义
  • 网站开发兼容ie2024最火的十大新闻
  • 南宁网站开发外包报价北京网站优化推广公司
  • 网站安装教程北京新闻最新消息