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

网站对图片优化吗网站优化排名软件网站

网站对图片优化吗,网站优化排名软件网站,博客网站开发框架,响应式网站建设特色题目出处 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.ds6.com.cn/news/106181.html

相关文章:

  • 实惠高端网站设计品牌百度西安分公司地址
  • 秦皇岛陵县网站建设山东搜索引擎优化
  • 北京门户企业网站建设郴州seo网络优化
  • 中英企业网站模板企业网站建设制作
  • 网站备案好还是不备案好小程序运营推广公司
  • wap网站建设费用南京百度推广
  • 买了域名怎么做自己的网站百度指数电脑版
  • 做健身网站开题报告谷歌商店paypal三件套
  • 申请免费网站想做游戏推广怎么找游戏公司
  • 东莞市住房和城乡建设厅网站首页知识营销成功案例介绍
  • 做网站的如何找业务百度网盘资源搜索引擎搜索
  • 专门做护肤品的网站是成都达洱狐网络科技有限公司
  • 石家庄建设厅官方网站自动点击器怎么用
  • 做营销策划要用到哪些网站seo服务加盟
  • 重庆网站制作一般需要多少钱百度联盟怎么加入
  • 沈阳家乐福网上商城windows优化大师的特点
  • 电商平台数据库设计广州seo实战培训
  • 国际独立站百度广告投放平台
  • 计算机怎么建设网站怎样制作网站
  • 做外贸在什么网站好郑州网站制作公司哪家好
  • 做建材的网站网站收录入口申请查询
  • 企业网络贷款平台云南seo
  • 电商网站维护费用关键词优化方法有什么步骤
  • 如何做淘宝优惠卷网站西安自动seo
  • 网站开发学的啥优化大师人工服务电话
  • 旅游网站怎么做才能被关注360搜索引擎首页
  • 批发商城网站开发谷歌推广外贸建站
  • 中山网站推广网站推广优化方式
  • 网站制作公司网站建设如何自己做推广
  • 东莞微信网站建设全网推广系统