BM14 链表的奇偶重排

news2024/10/5 23:29:11

链表的奇偶重排_牛客题霸_牛客网 (nowcoder.com)

双指针解决

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* oddEvenList(ListNode* head) {
        // write code here
        if(head == nullptr || head->next == nullptr) return head;
        ListNode* ji = head; //奇数指针
        ListNode* oubegin = head->next; //保存偶数开头 之后奇偶合并使用
        ListNode* ou = head->next; //偶数指针 
        while(ou != nullptr && ou->next != nullptr)
        {
            ji->next = ou->next;
            ji = ji->next;
            ou->next = ji->next;
            ou = ou->next;
        } 
        ji->next = oubegin; //连接奇偶
        return head;
    }
};
  • 时间复杂度:O(n),遍历一次链表的所有节点
  • 空间复杂度:O(1),常数级指针,无额外辅助空间

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

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

相关文章

Android 9.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

1.前言 在android9.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右…

Linux_红帽8学习笔记分享_9(文件系统管理FS Management与swap交换分区管理)

Linux_红帽8学习笔记分享_9(文件系统管理FS Management与swap交换分区管理) 文章目录 Linux_红帽8学习笔记分享_9(**文件系统管理FS Management与swap交换分区管理**)1.fdisk分区命令的使用技巧1.1 创建大小为100M,200M,300M,400M,500M的5个磁盘分区(MBR分区表类型)1.2创建大小…

固态继电器的优点

固态继电器的优点包括紧凑性、抗冲击性和长寿命。以下是这些 SSR 优势中最重要的优势,让您了解为什么这项技术最适合您的应用: 开关速度快 固态继电器器件的主要优点之一是其开关速度。由于无需移动机械部件,SSR 可以在几微秒内切换。这是对…

详解MySQL慢SQL定位、分析

目录 1.概述 2.慢SQL定位 3.SQL性能分析 3.1.例子 3.2.SQL性能分析 3.3.参数说明 3.3.1.id 3.3.2.select_type 3.3.3.key_len 3.3.4.rows 3.3.5.type 3.3.6.extra 1.概述 解决慢SQL的问题无非散步,定位慢SQL、分析慢SQL、优化慢SQL,本文将按…

高效提升计算质量!瑞典量子计算机首次应用于化学

​ (图片来源:网络) 量子计算机可以模拟化学过程,从新药开发到新材料的方方面面,它都能带来重大影响,人们对此寄予厚望。在瑞典,查尔姆斯理工大学的研究人员首次使用量子计算机在实际化学中进行…

PyQt5桌面应用开发(9):经典布局QMainWindow

本文目录 PyQt5桌面应用系列桌面程序基本布局QMainWindow概况与使用主窗体菜单栏工具栏停靠窗状态栏 代码编辑器的例子总结 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循…

113-Linux_安装c/c++开发库及连接mysql数据库

文章目录 一.安装c/c开发库二.连接mysql数据库三.用户的管理与授权 mysql数据库的安装 一.安装c/c开发库 安装开发c/c的库&#xff0c;命令&#xff1a;apt install libmysqlclient-dev 二.连接mysql数据库 #include<stdio.h> #include<mysql/mysql.h>void fun…

JAVA13新特性

JAVA13新特性 概述 2019年9月17日&#xff0c;国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK13。 Features&#xff1a;总共有5个新的JEP(JDK Enhancement Proposals): http://openjdk.java.net/projects/jdk/13/Features 350:Dynamic CDS Archives 动…

C++ STL之vector基础

文章目录 前言STL之vector基础1. What&#xff1a;什么是 vector&#xff1f;2. Why&#xff1a;为什么使用 vector&#xff1f;3. How&#xff1a;怎么使用vector?3.1 vector的定义演示&#xff1a;输出&#xff1a; 3.2 vector iterator 的使用演示&#xff1a;输出&#xf…

网络基础学习:什么是tcp/ip协议

什么是tcp/ip协议 TCP/ip协议是什么东西&#xff1f;tcp/ip四层模型一、应用层二、传输层三、网络层四、网络接口层 TCP/ip协议是什么东西&#xff1f; TCP/IP是一种网络协议套件&#xff0c;它由传输控制协议&#xff08;TCP&#xff09;和互联网协议&#xff08;IP&#xff…

最大网络流算法之dinic算法详解

1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…

2016年上半年软件设计师下午试题

试题四 【说明】 模式匹配是指给定主串t和子串s&#xff0c;在主串 t 中寻找子串s的过程&#xff0c;其中s称为模式。如果匹配成功&#xff0c;返回s在t中的位置&#xff0c;否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下&#xff1a; 在串…

【Python入门】Python的判断语句(if语句的基本格式)

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于Python零基础入门系列&#xff0c;本专栏主要内容为Python基础语法、判断、循环语句、函…

如何使用SpringMVC之常用注解

❣️关注专栏&#xff1a;JavaEE Spring MVC ⌛️ 1. Spring MVC 创建和连接⌛️ 1.1 RequestMapping⌛️ 1.2 GetMapping⌛️ 1.3 PostMapping ⌛️ 2. 获取参数⌛️ 2.1 传递/获取单个参数⌛️ 2.2 传递/获取多个参数⌛️ 2.3 传递/获取对象⌛️ 2.4 参数重命名⌛️ 2.4.1 …

【链表OJ题 5】牛客 CM11 链表分割

目录 题目来源&#xff1a; 代码实现&#xff1a; 1.带哨兵位的头结点 2.不带哨兵位的头结点 思路分析&#xff1a; 1.带哨兵位的头结点 实现过程&#xff1a; 易错点&#xff1a; 2.不带哨兵位的头结点 实现过程&#xff1a; 易错点&#xff1a; 题目来源&#xff…

【图神经网络】GNNExplainer代码解读及其PyG实现

GNNExplainer代码解读及其PyG实现 使用GNNExplainerGNNExplainer源码速读前向传播损失函数 基于GNNExplainer图分类解释的PyG代码示例参考资料 接上一篇博客图神经网络的可解释性方法及GNNexplainer代码示例&#xff0c;我们这里简单分析GNNExplainer源码&#xff0c;并用PyTor…

2023年中职组“网络空间安全”赛项XX市竞赛任务书

2023年中职组“网络空间安全”赛项 XX市竞赛任务书 一、竞赛时间 共计&#xff1a;180分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 SSH弱口令渗透测试 100分钟 100 任务二 Linux操作系统渗透测试 100 任…

deep learning system 笔记 自动微分 reverse mode AD

计算图 Computational Graph 图上的每个节点代表一个中间值边事输入输出的关系 forward 求导 forward mode AD 上图中从前向后&#xff0c;一步一步计算每个中间值对 x1的偏导&#xff0c;那么计算到 v7&#xff0c;就得到了整个函数对于 x1的偏导。 有limitation 对一个参数…

单机版部署Redis详细教程

概述 大多数企业都是基于Linux服务器来部署项目&#xff0c;而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis. 此处选择的Linux版本为CentOS 7. Redis的官方网站地址&#xff1a;https://redis.io/ 单机安装Redis 1.1.安装Redis依…

【IP地址与子网掩码】如何计算网络地址、广播地址、地址范围、主机个数、子网数(附详解与习题)

【写在前面】其实很多时候通过IP地址和子网掩码计算其网络地址、广播地址、可用IP&#xff0c;地址范围&#xff0c;主机数啥的&#xff0c;有些人不太清楚规则就只能瞎猜了&#xff0c;但是作为一个网络管理员还是一个基础常识的&#xff0c;这不因为最近备考网络管理员&#…