21-链表-奇偶链表

这是链表的第21题,力扣链接。

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。

第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。

请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。

你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

示例 1:

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

示例 2:

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

大致题意是偶数索引位置的节点左移,奇数位置的节点右移,然后两边的新链表拼接返回。

直接模拟一下返回:

func oddEvenList(head *ListNode) *ListNode {
	left, right := &ListNode{}, &ListNode{}
	leftCur, rightCur := left, right
	index := 0
	for ; head != nil; head = head.Next {
		if index%2 == 0 {
			leftCur.Next = &ListNode{Val: head.Val}
			leftCur = leftCur.Next
		} else {
			rightCur.Next = &ListNode{Val: head.Val}
			rightCur = rightCur.Next
		}
		index++
	}
	leftCur.Next = right.Next
	return left.Next
}

 当然,也可以原地移动:

func oddEvenList(head *ListNode) *ListNode {
	if head == nil {
		return head
	}
	evenHead := head.Next
	odd := head
	even := evenHead
	for even != nil && even.Next != nil {
		odd.Next = even.Next
		odd = odd.Next
		even.Next = odd.Next
		even = even.Next
	}
	odd.Next = evenHead
	return head
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是冒泡排序?如何实现?

一、是什么 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法 冒泡排序的思想就是在每次遍历一遍未排序的数列之后,将一个数据元素浮上去(也就是排好了一个数据) 如同碳酸饮料中二氧化碳的…

JavaWeb,HTML的学习

关于HTML、CSS、JavaScript HTML主要用于网页主体结构的搭建 CSS主要用于页面元素美化 JavaScript主要用于页面元素的动态处理 关于HTML 关于超文本 关于标记语言 HTML基础结构 html文件是浏览器负责解析和展示。html文件是纯文本文件,普通编辑工具都可以编辑。…

香港Web3:Web3的新热土

相关推荐点击查看TechubNews 随着区块链技术的快速发展,Web3的概念逐渐在全球范围内受到关注。作为亚洲的金融中心,香港在Web3领域也展现出了极大的热情和潜力。本文将探讨香港在Web3领域的发展现状、机遇与挑战。 一、香港Web3的发展现状 香港在Web3…

使用Python爬取小红书笔记与评论(js注入方式获取x-s)

文章目录 1. 写在前面2. 分析加密入口3. 使用JS注入4. 爬虫工程化 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感…

SQL-修改数据

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…

RuntimeError: Placeholder storage has not been allocated on MPS device!解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

C#核心--实践小项目(贪吃蛇)

C#核心实践小项目 -- 贪吃蛇 必备知识点--多脚本文件 (可观看CSharp核心--52集进行了解) 必备知识点--UML类图 必备知识点--七大原则 贪吃蛇 项目展示 控制方向的是:WSAD 确定键是:J 需求分析(UML类图&#xff09…

书生·浦语大模型实战营-学习笔记2

目录 轻松玩转书生浦语大模型趣味Demo1. 大模型及 InternLM 模型介绍2. InternLM-Chat-7B 智能対话 Demo3. Lagent 智能体工具调用 Demo4. 浦语•灵笔图文创作理解 Demo5. 通用环境配置实验记录6. 课后作业 视频地址: (2)轻松玩转书生浦语大模型趣味Demo 文档教程&a…

视频号下载保姆级攻略:五大神级下载方法揭秘!

今天我要和大家聊聊一个非常有趣的话题,那就是如何下载视频号的视频。据我所知虽然很多人都知道视频号,但却不知道如何玩好视频号,以及怎么下载视频,我知道有些朋友可能对这个话题还不太了解,但是我相信,只…

从头安装与使用一个docker GPU环境

GPU版docker的安装与使用 欢迎使用GPU版docker安装使用说明使用官方教程安装docker新建一个GPU版docker环境调用docker环境执行本地python文件 欢迎使用GPU版docker安装使用说明 使用官方教程安装docker 导入源仓库的GPG key curl -fsSL https://download.docker.com/linux/…

电脑怎么取消开机密码?教你如何快速取消

电脑开机密码是保护个人隐私和计算机安全的重要手段,但有时用户可能希望取消这个设置以提高使用便捷性。本文将介绍三种电脑怎么取消开机密码的方法,适用于不同品牌不同类型的电脑,为用户提供更灵活的操作选择。 方法1:使用系统设…

强迫症福音 格式化代码后的sql语句 CASE WHEN THEN ELSE END 语句如何转为一行显示

强迫症福音 格式化代码后的sql语句 CASE WHEN THEN ELSE END 语句如何转为一行显示 一、背景二、解决办法三、更多有用的工具 一、背景 在日常开发中,当美化或格式化代码后,CASE WHEN语句会出现换行且不易阅读情况,这给开发造成了一定的不便…

K8s---存储卷(动态pv和pvc)

当我要发布pvc可以生成pv,还可以共享服务器上直接生成挂载目录。pvc直接绑定pv。 动态pv需要两个组件 1、卷插件:k8s本生支持的动态pv创建不包括nfs,需要声明和安装一个外部插件 Provisioner: 存储分配器。动态创建pv,然后根据pvc的请求自动…

压测工具ab

Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用, Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以适用于其他服务:nginx、lighthttp、tomcat、IIS等其它Web服务器的压力 采用平台&#xf…

2-认识小程序项目

基本结构 myapp├─miniprogram┊ └──pages┊ ┊ └──index┊ ┊ ┊ ├──index.json┊ ┊ ┊ ├──index.ts┊ ┊ ┊ ├──index.wxml┊ ┊ ┊ └──index.wxss┊ ┊ └──logs┊ ┊ ├──index.json┊ ┊ ├──index.ts┊ ┊ ├…

面向对象的装饰器

【 1 】什么是property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 【 2 】使用方法和具体实例 面向对象的装饰器是一种在面向对象编程中用于修改类或方法行为的技术。装饰器提供了一种灵活的方式。可以在不修改原…

58.leetcode 最后一个单词的长度

一、题目 二、解答 1. 思路 分2种情况 第一种情况只有一个单词,不包含空格:这种情况直接返回单词本身的长度。第二种情况包含空格:先去掉首尾的空格,根据空格切割字符串生成一个字符串列表,返回倒数第一个索引位置字…

k8s集群配置NodeLocal DNSCache

一、简介 当集群规模较大时,运行的服务非常多,服务之间的频繁进行大量域名解析,CoreDNS将会承受更大的压力,可能会导致如下影响: 延迟增加:有限的coredns服务在解析大量的域名时,会导致解析结果…

大模型学习与实践笔记(五)

一、环境配置 1. huggingface 镜像下载 sentence-transformers 开源词向量模型 import os# 设置环境变量 os.environ[HF_ENDPOINT] https://hf-mirror.com# 下载模型 os.system(huggingface-cli download --resume-download sentence-transformers/paraphrase-multilingual-…

网站ICP备案和公安备案教程

由于最近华为云那边的服务器到期了,而续费的价格比较贵一点,刚好阿里云这边有活动就入手了一台,但是将网站迁移过来后发现又要进行ICP备案,那就备案呗。但是备案完成之后发现还有一个公安备案,真让人头大啊... 很多人也…