【LeetCode328】奇偶链表

简介: 时间复杂度O(n)即遍历一遍链表,奇偶指针odd循环链表,奇数指针不断串连奇数节点,偶数指针even不断串连偶数节点,最后奇数指针的结尾连接偶数节点的开始。

一、题目


image.png

二、思路

时间复杂度O(n)即遍历一遍链表,奇偶指针odd循环链表,奇数指针不断串连奇数节点,偶数指针even不断串连偶数节点,最后奇数指针的结尾连接偶数节点的开始。


根据偶数指针进行while条件判断,注意为了确定本轮次的奇数链表存在下一个新节点,所以在while判断还要加上even->next != NULL。

        while(even != NULL && even->next != NULL){
            odd->next = even->next;
            odd = odd->next;
            even->next = odd->next;
            even = even->next;
        }

第一轮循环后:

image.png

三、C++代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* oddEvenList(ListNode* head) {
        if(head == NULL){
            return head;
        }
        //偶数第一个节点
        ListNode* evenhead = head->next;
        ListNode* odd = head;
        ListNode* even = head->next;
        while(even != NULL && even->next != NULL){
            odd->next = even->next;
            odd = odd->next;
            even->next = odd->next;
            even = even->next;
        }
        odd->next = evenhead;
        return head;
    }
};
相关文章
|
弹性计算 关系型数据库 MySQL
快速上手阿里云RDS MySQL实例创建,轻松管理数据库
快速上手阿里云RDS MySQL实例创建,轻松管理数据库 在数字化时代,数据已成为企业的核心资产。如何高效、安全地存储和管理这些数据,成为企业在云计算时代亟待解决的问题。阿里云的RDS(关系型数据库服务)应运而生,为用户提供稳定、可靠的云上数据库解决方案。本文将详细介绍如何通过阿里云RDS管理控制台快速创建RDS MySQL实例,让您轻松上手,快速部署数据库。
679 2
|
9月前
|
数据采集 DataWorks 搜索推荐
阿里云DataWorks深度评测:实战视角下的全方位解析
在数字化转型的大潮中,高效的数据处理与分析成为企业竞争的关键。本文深入评测阿里云DataWorks,从用户画像分析最佳实践、产品体验、与竞品对比及Data Studio公测体验等多角度,全面解析其功能优势与优化空间,为企业提供宝贵参考。
416 13
解锁时间价值:日程安排管理的科学方法
本文探讨了日程安排管理的重要性、常见问题及优化策略,强调了有效管理时间对提高工作效率、减轻压力、实现目标和平衡生活的重要性。通过设定SMART目标、运用优先级管理工具、合理规划时间、利用数字工具和技术、管理干扰与分心、保持灵活性以及激励自己与团队等策略,帮助个人和企业构建高效的时间管理体系。
|
人工智能 自然语言处理 小程序
小程序vant开发阻止事件冒泡
小程序vant开发阻止事件冒泡
246 0
|
SQL 关系型数据库 MySQL
使用 RDS for MySQL 配置到自建数据库的主从复制
场景 出于数据容灾、ETL、异地数据访问等目的,可能需要基于 RDS for MySQL 实例,搭建到自己线下MySQL实例的主从复制。这篇文章将给出简单的操作步骤,供大家参考。由于要使用GTID特性,因此要求MySQL版本>=5.6. 前提条件 操作步骤 配置主实例 登录 RDS 控制台
24019 0
|
定位技术 API C#
【EasyAR学习】平面追踪、表面跟踪和运动跟踪、稀疏空间地图
Easy平面追踪、表面跟踪和运动跟踪、稀疏空间地图解析与实战
1202 0
|
JavaScript 容器
Vue中 引入使用 vue-video-player 实现音视频播放
Vue中 引入使用 vue-video-player 实现音视频播放
1372 0
Vue中 引入使用 vue-video-player 实现音视频播放
|
负载均衡 Java API
Spring Cloud Gateway整合Nacos实现服务路由及集群负载均衡
我们都知道Spring Cloud Gateway是一个基于Spring Boot、Spring WebFlux、Project Reactor构建的高性能网关,旨在提供简单、高效的API路由。
Spring Cloud Gateway整合Nacos实现服务路由及集群负载均衡
|
7天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1172 3