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

南阳做网站费用如何推广普通话的建议6条

南阳做网站费用,如何推广普通话的建议6条,自己服务器建网站,专业seo站长工具全面查询网站链表K个节点的组内逆序调整问题 作者:Grey 原文地址: 博客园:链表K个节点的组内逆序调整问题 CSDN:链表K个节点的组内逆序调整问题 题目描述 LeetCode 25. Reverse Nodes in k-Group 本题的 follow up 是: Fol…

链表K个节点的组内逆序调整问题

作者:Grey

原文地址:

博客园:链表K个节点的组内逆序调整问题

CSDN:链表K个节点的组内逆序调整问题

题目描述

LeetCode 25. Reverse Nodes in k-Group

本题的 follow up 是:

Follow-up: Can you solve the problem in O(1) extra memory space?

即用 O ( 1 ) O(1) O(1)的空间复杂度实现整个算法。

主要思路

本题需要设计两个方法:

第一个方法

ListNode getKGroupEnd(ListNode start, int k)

该方法表示:从链表start位置开始,数够k个位置,返回k个位置后的那个节点。

比如链表为:

...-> start -> b -> c -> d -> e

假设:k = 3

则:表示从start开始,数够 3 个,所以返回c节点

如果是下述情况

...-> start -> b -> c -> null

假设:k = 6

由于start后面不够 6 个节点,所以返回null,完整代码如下:

public static ListNode getKGroupEnd(ListNode start, int k) {while (--k != 0 && start != null) {start = start.next;}return start;
}

第二个方法void reverse(ListNode start, ListNode end),表示反转startend之间的链表。

例如:原链表为:

....->a->b->c->d->e....

假设:start = a, end = d

经过reverse方法,会变成

...d->c->b->a->e.....

reverse方法也相对比较简单,就是链表反转的一种特殊情况,实现代码如下:

public static void reverse(ListNode start, ListNode end) {end = end.next;ListNode pre = null;ListNode cur = start;while (cur != end) {ListNode tmp = cur.next;cur.next = pre;pre = cur;cur = tmp;}start.next = end;
}

有了上述两个方法,我们可以比较方便实现原题要求,主流程如下

public static ListNode reverseKGroup(ListNode head, int k) {ListNode start = head;ListNode end = getKGroupEnd(start, k);if (end == null) {return head;}// 第一组凑齐了!head = end;reverse(start, end);// 上一组的结尾节点ListNode lastEnd = start;while (lastEnd.next != null) {start = lastEnd.next;end = getKGroupEnd(start, k);if (end == null) {return head;}reverse(start, end);lastEnd.next = end;lastEnd = start;}return head;
}

整个过程时间复杂度 O ( N ) O(N) O(N),空间复杂度 O ( 1 ) O(1) O(1)

更多

算法和数据结构学习笔记

算法和数据结构学习代码

参考资料

算法和数据结构体系班-左程云

http://www.ds6.com.cn/news/19392.html

相关文章:

  • 沈阳网站建设报价有链接的网站
  • wix做网站的建议怎么创建域名
  • 天津做网站的公司怎么样淘宝数据查询
  • 福州网站怎么做的网站怎么做推广
  • 如皋网站建设关键字排名软件官网
  • 在源码之家下载的网站模板可以作为自己的网站吗湖南网站网络推广哪家奿
  • 深圳最新疫情出行政策湖南seo博客seo交流
  • 廊坊开发网站公司seo关键词优化技巧
  • 长沙 学校网站建设百度seo官方网站
  • 浙江政府网站大建设方案聊城网站推广公司
  • 做仿网站的书nba排名西部和东部
  • 怎样安装微信小程序东莞市网站seo内容优化
  • 帝国网站管理系统安装怎么在网上打广告
  • 教做香肠的网站每日新闻播报
  • 搬瓦工做网站好慢1个百度指数代表多少搜索
  • 做微课常用的网站武汉seo外包平台
  • 网站优化就是每天更新内容吗爱站网长尾关键词挖掘工具的作用
  • 做私彩网站代理会坐牢吗域名查询万网
  • html课设做网站营销广告
  • 青岛专业网站建设定制各地疫情最新消息
  • 黄埔做网站百度论坛首页
  • 义乌建设局网站打不开好看的seo网站
  • 网站制作从零开始芒果视频怎样下载到本地
  • id注册网站网络营销有几种方式
  • 网站开发环境实验报告怎么推广销售
  • 怀化百度关键词优化公司seo排名技术教程
  • 无锡市太湖新城建设网站活动营销案例100例
  • retina wordpress长沙专业seo优化推荐
  • 资讯类网站建设cctv 13新闻频道
  • 长春制作公司网站海南百度推广运营中心