【力扣】143. 重排链表

143. 重排链表

题目描述

给定一个单链表 L 的头节点 head ,单链表 L 表示为:

L0 → L1 → … → Ln - 1 → Ln

请将其重新排列后变为:

L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 1:

  • 输入:head = [1,2,3,4]
  • 输出:[1,4,2,3]

示例 2:

  • 输入:head = [1,2,3,4,5]
  • 输出:[1,5,2,4,3]

提示:

  • 链表的长度范围为 [1, 5 * 104]
  • 1 <= node.val <= 1000

解题方法

链表数组重排序

  • C 语言
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
void reorderList(struct ListNode* head) {int len = 0;struct ListNode* str = head;// 定义链表数组struct ListNode* tab_list[50000];if (NULL == head) {return;}// 将链表存在数组中while (NULL != str) {tab_list[len++] = str;str = str->next;}// 定义双指针int left = 0, right = len - 1;// 重新排序链表while (left < right) {tab_list[left]->next = tab_list[right];left++;if (left == right) {break;}tab_list[right]->next = tab_list[left];right--;}tab_list[left]->next = NULL;
}
复杂度分析
时间复杂度为 O(N),其中 N 是链表中的节点数。
空间复杂度为 O(N),其中 N 是链表中的节点数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python列表相关命令

在我们的一生中&#xff0c;没有人会为你等待&#xff0c;没有机遇会为你停留&#xff0c;成功也需要速度。 Python中的列表&#xff08;List&#xff09;是一种非常灵活且常用的数据结构&#xff0c;它可以容纳任意数量的元素&#xff0c;并且支持混合类型。下面让我来介绍一下…

Fastgpt知识库接入oneapi和自定义大模型

本期教程教大家训练自己的知识库回答chatgpt回答不了的问题 FastGPT 是一个知识库问答系统,可以通过调用大模型和知识库回答特定的问题 可以做成专属 AI 客服集成到现有的APP或者网站内当作智能客服支持网络爬虫学习互联网上的很多知识可以通过flow可视化进行工作流程编排 本期…

【spark】win10 pyspark3.5.1 安装超级简单

下载地址&#xff1a;https://spark.apache.org/downloads.html 下载完成&#xff1a; 复制文件到自己的路径下&#xff0c;路径最好不要有中文、空格&#xff1b; 解压tgz文件&#xff1a; 修改环境变量&#xff1a; 创建SPARK_HOME&#xff1a; D:\software_download\spar…

Facebook之道:探索社交媒体领域的未来

随着科技的不断发展&#xff0c;社交媒体已经成为我们日常生活中不可或缺的一部分。而在这个领域中&#xff0c;Facebook一直是引领者和领头羊。然而&#xff0c;随着时间的推移&#xff0c;社交媒体领域正在发生着翻天覆地的变化&#xff0c;而Facebook又将何去何从&#xff1…

【Python】在Windows Server上部署Flask后端服务器

想要在Windows Server上部署flask应用&#xff0c;当然不能只下一个anaconda配完环境之后直接启动py文件&#xff0c;这样的话后台会有一段警告&#xff1a; * Serving Flask app app* Debug mode: off WARNING: This is a development server. Do not use it in a production …

攻略:ChatGPT3.5~4.0(中文版)国内无限制免费版(附网址)【2024年5月最新更新】

一、什么是ChatGPT&#xff1f; 1、ChatGPT的全名是Chat Generative Pre-trained Transformer&#xff0c;其中"chat"表示聊天。"GPT"则是由三部分组成&#xff1a;生成式&#xff08;generative&#xff09;意味着具有创造力&#xff1b;预训练&#xff0…

跟我学做零售数据分析报表-商品滞销分析

商品滞销的情况很常见&#xff0c;因此商品滞销分析也是基本属于零售数据分析标配内容之一。那么&#xff0c;商品滞销分析报表该怎么做&#xff1f;要做计算哪些指标&#xff0c;怎么分析滞销趋势&#xff1f;别急&#xff0c;奥威BI零售数据分析方案预设了一张BI商品滞销分析…

FreeRTOS(随便写写,项目用到)

FreeRTOS是什么&#xff08;并发&#xff09; RTOS&#xff08;Real Time Operating System&#xff0c;中文就是实时操作系统&#xff09; FreeRTOS是一个迷你的实时操作系统内核。 作为一个轻量级的操作系统&#xff0c;功能包括&#xff1a;任务管理、时间管理、信号…

CI/CD与容器编排的结合

确实&#xff0c;对于需要多个步骤或阶段的工作流&#xff0c;Kubernetes原生并没有内建的工作流引擎&#xff0c;但可以通过以下几种方式来实现复杂的工作流程&#xff1a; Kubernetes Jobs&#xff1a;对于需要运行到完成的一次性任务&#xff0c;可以使用Kubernetes的Job资源…

HTTPS反向代理的功能和應用全解

HTTPS反向代理是一種特殊類型的伺服器&#xff0c;是在反向代理的基礎上增加了HTTPS的支持,位於客戶端和Web伺服器之間&#xff0c;充當兩者之間的仲介。在這種配置中&#xff0c;所有客戶端請求首先到達反向代理伺服器&#xff0c;然後由該伺服器將請求轉發到適當的Web伺服器。…

citylava:城市场景中VLMs的有效微调

citylava:城市场景中VLMs的有效微调 摘要IntroductionRelated WorkVision-Language ModelsVLMs in Driving Methodology CityLLaVA: Efficient Fine-Tuning for VLMs in City Scenario 摘要 在城市广阔且动态的场景中&#xff0c;交通安全描述与分析在从保险检查到事故预防的各…

蓝牙 | 软件:Git管理高通的ChipCode项目

哈喽大家好&#xff0c;最近发现大家在高通chipcode网站上下载不了代码&#xff0c;小编一直使用git的方式获取新版本代码&#xff0c;没有遇到什么阻碍。于是小编到新主机上尝试下载代码的压缩包和git代码&#xff0c;都遇到了问题。由于压缩包是高通自己处理卡住了&#xff0…

您可以使用WordPress创建的19种网站类型

当人们决定为什么他们应该使用WordPress时&#xff0c;我们经常会被问到“WordPress可以做[空白]吗&#xff1f;答案大多是肯定的。在本文中&#xff0c;我们将向您展示您可以使用WordPress创建的19种不同类型的网站&#xff0c;而无需学习任何编程技巧。 目录 隐藏 1 开始使用…

JavaScript字符串的常用方法

这篇汇总一下&#xff0c;JavaScript中关于字符串常用几个方法&#xff1a;增、删、改和查。 增 字符串的增加操作&#xff0c;实际上就是拼接&#xff0c;也不是直接添加功能&#xff0c;而是创建字符串的一个副本&#xff0c;然后再进行操作。 常见的拼接方法就是&#xf…

CSS---Emmet(二)

一、Emmet语法 Emmet语法是一种用于快速编写HTML和CSS的缩写技术。它允许开发者通过简洁的表达式快速生成复杂的代码结构&#xff0c;极大地提高了编码效率。使用Emmet&#xff0c;你只需要写出一些简短的缩写符号和操作符&#xff0c;然后通过快捷键&#xff08;通常是Tab键&…

巡检机器人有哪些功能和作用?

在科技如此发达的时代&#xff0c;巡检机器人犹如一位不知疲倦的守护者&#xff0c;悄然走进了我们的生活。它们具备着令人惊叹的功能和作用&#xff0c;成为了保障安全、提高效率的重要力量。那么&#xff0c;巡检机器人功能和作用&#xff1f;下面我们来说说旗晟机器人的几款…

java——嵌套(二)

目录 一&#xff1a;方法的重写&#xff08;覆盖/覆写&#xff09; 1. 方法的重写的意义&#xff1a; 2. 重写&#xff08;overide&#xff09; 3. 案例 二&#xff1a;继承中构造方法的调用 1. 子类的构造方法会默认调用父类的构造方法&#xff1b; 2. super 关键字调用…

深入理解Go语言并发编程

随着计算机硬件的发展&#xff0c;多核处理器已经成为现代计算机的主流配置。在这样的背景下&#xff0c;并发编程成为了一种必备的技能。Go 语言作为一门先进的编程语言&#xff0c;天生支持并发编程&#xff0c;提供了丰富的并发原语和工具&#xff0c;使得并发编程变得更加容…

设计模式——原型模式(Prototype)

原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许一个对象通过复制现有的实例来创建新的实例。原型模式的核心思想是使用原型实例来指定要创建的对象的类型&#xff0c;并通过复制这些原型实例来创建新的对象。 原型模式的主要优点包…

Redisson分布式锁全解析:从基础到红锁,锁定高并发解决方案

1. 介绍Redisson和分布式锁的概念 1.1 Redisson简介 Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid, IMDG)。它不仅提供了对分布式和可伸缩数据结构的支持&#xff0c;还提供了多种分布式服务&#xff0c;包括但不限于分布式锁、集合、映射、计…