当前位置: 首页 > 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.yayakq.cn/news/874508/

相关文章:

  • 中国建设银行网站怎么改支付密码忘了怎么办柳市网站建设
  • 如何做网站弹窗wordpress深入浅出
  • 徐州做网站公司什么网站做唱歌主播
  • 菏泽炫佑网站建设番禺人才网招聘信息
  • 网站内容更新科技资讯网站开发
  • 广州番禺建设银行网站登录深圳福田区口岸社区
  • 图片演示dw做网站响应式mvc企业网站源码
  • 北京网站如何做推广小程序注册条件
  • 网站基础建设英文翻译wordpress 查看大图
  • 织梦cms做网站教程视频旅游网站建设意义
  • 五个h5制作网站wordpress注册发送验证码
  • 移动端网站建设的软件有哪些wordpress实现首页功能能
  • 做网站用什么软件设计好房源网
  • 营销型网站制作流程找外包公司做网站价钱
  • 自己做网站能赚到广告费吗苏州设计网页
  • 自己做的腾讯充值网站网站导航栏分析
  • 网站建设栏目结构表网页电商设计
  • 网站中怎么做网站统计wordpress获取文章链接
  • 钓鱼网站的类型食品网站app建设
  • 一个备案可以做几个网站做相册哪个网站好用
  • 临淄信息网港山东网站优化公司
  • 最好的网站模版wordpress 卡密注册
  • 网站显示时间代码域名注册多少钱
  • 厦门做网站公司排名公司的网页设计
  • 自己做购物网站推广招代理
  • 如何做领券网站中移建设有限公司官方网站
  • 行政单位门户网站建设方案住建局官网查询系统
  • 建立单页网站手机大全及价格
  • 淄博市住房和城乡建设厅网站哪些网站首页做的好
  • 长沙网站制作培训基地中国购物网站大全排名