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

网站广东省备案系统市场营销推广策划

网站广东省备案系统,市场营销推广策划,东莞疫情最新消息2021,网站建设与维护 pdf题目出处 92-反转链表II-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 92-反转链表II-官方解法 前言 链表的操作问题,一般而言面试(机试)的时候不…

题目出处

92-反转链表II-题目出处

题目描述

在这里插入图片描述

个人解法

思路:

todo

代码示例:(Java)

todo

复杂度分析

todo

官方解法

92-反转链表II-官方解法

前言

链表的操作问题,一般而言面试(机试)的时候不允许我们修改节点的值,而只能修改节点的指向操作。

思路通常都不难,写对链表问题的技巧是:一定要先想清楚思路,并且必要的时候在草稿纸上画图,理清「穿针引线」的先后步骤,然后再编码。

方法1:穿针引线

思路:

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

代码示例:(Java)

@Data
class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}
}public class Solution1 {public ListNode reverseBetween(ListNode head, int left, int right) {// 因为头节点有可能发生变化,使用虚拟头节点可以避免复杂的分类讨论ListNode dummyNode = new ListNode(-1);dummyNode.next = head;ListNode pre = dummyNode;// 第 1 步:从虚拟头节点走 left - 1 步,来到 left 节点的前一个节点// 建议写在 for 循环里,语义清晰for (int i = 0; i < left - 1; i++) {pre = pre.next;}// 第 2 步:从 pre 再走 right - left + 1 步,来到 right 节点ListNode rightNode = pre;for (int i = 0; i < right - left + 1; i++) {rightNode = rightNode.next;}// 第 3 步:切断出一个子链表(截取链表)ListNode leftNode = pre.next;ListNode curr = rightNode.next;// 注意:切断链接pre.next = null;rightNode.next = null;// 第 4 步:同第 206 题,反转链表的子区间reverseLinkedList(leftNode);// 第 5 步:接回到原来的链表中pre.next = rightNode;leftNode.next = curr;return dummyNode.next;}private void reverseLinkedList(ListNode head) {// 也可以使用递归反转一个链表ListNode pre = null;ListNode cur = head;while (cur != null) {ListNode next = cur.next;cur.next = pre;pre = cur;cur = next;}}}

复杂度分析

  • 时间复杂度:O(N),其中 N 是链表总节点数。最坏情况下,需要遍历整个链表。
  • 空间复杂度:O(1)。只使用到常数个变量。

方法2:一次遍历「穿针引线」反转链表(头插法)

思路:

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

在这里插入图片描述

代码示例:(Java)

public class Solution2 {public ListNode reverseBetween(ListNode head, int left, int right) {// 设置 dummyNode 是这一类问题的一般做法ListNode dummyNode = new ListNode(-1);dummyNode.next = head;ListNode pre = dummyNode;for (int i = 0; i < left - 1; i++) {pre = pre.next;}ListNode cur = pre.next;ListNode next;for (int i = 0; i < right - left; i++) {next = cur.next;cur.next = next.next;next.next = pre.next;pre.next = next;}return dummyNode.next;}}

复杂度分析

  • 时间复杂度:O(N),其中 N 是链表总节点数。最多只遍历了链表一次,就完成了反转。
  • 空间复杂度:O(1)。只使用到常数个变量。

考察知识点

收获

Gitee源码位置

92-反转链表II-源码

http://www.dt0577.cn/news/41034.html

相关文章:

  • 网站的建设与管理广告投放数据分析
  • 网站测试的必要性网站流量统计分析的维度包括
  • 永康哪有做网站的公司网络优化工程师吃香吗
  • 秦皇岛网站定制哪家好搜索引擎网站优化和推广方案
  • 合肥建设网络赌博网站百度ai搜索引擎
  • 个人网站用主机做服务器品牌网站设计
  • 备案期间网站要关闭吗app推广接单平台
  • 河北省住房和城市建设厅网站新东方在线教育平台官网
  • 企业网站建设制作多少钱引擎网站推广法
  • wordpress图片多北京seo主管
  • 宿松网站建设公司小学生一分钟新闻播报
  • icp网站备案号查询今日头条新闻军事
  • 湖南医院响应式网站建设企业河北关键词seo排名
  • 找百度做的网站可以过户怎样在百度上发布作品
  • 关于内网站建设的请示成都百度推广
  • 哈尔滨快速建站专业定制北京seo优化外包
  • 互动力 网站建设百度客服24小时人工电话
  • 怎么在百度做网站种子搜索在线 引擎
  • 含山县查询建设工程的网站百度app首页
  • 宝鸡手机网站开发seo关键词优化指南
  • 做数据表格的网站seo销售代表招聘
  • 软件开发一个月多少钱嘉兴新站seo外包
  • 什么网站做禽苗好的网站正安县网站seo优化排名
  • 用wordpress复制一个网站百度代理服务器
  • php框架做网站广州网络推广
  • 和嗲囡囡和做的网站无锡百度竞价推广
  • 做线上网站需要钱吗网络推广有效果吗
  • 阅读网站源码合作seo公司
  • 优秀网站设计作品分析制作网站的软件
  • 普洱网站搭建itme收录优美图片官网