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

【LeetCode75】第三十题 奇偶链表

目录

 

题目:

示例:

分析:

代码:


题目:

示例:

分析:

题目给我们一个链表,让我们把奇索引和偶索引的节点区分开来 ,参考示例给出的图我们应该就能很清晰地知道题目是什么意思了。

每次做链表题,我的第一反应都是先把链表的每个节点都先存起来再做处理。

不过这道题有给出限制,O(1)的额外空间和O(n)的时间复杂度,就是我们不能拿额外的容器来存,并且需要只遍历链表一次就得出答案。

我们可以额外建立两条链表,然后遍历链表,拿一个索引值来记录节点是奇还是偶,如果是奇数,那么我们就把该节点转移到奇数的那条链表里,反之就转移到偶数的那条链表里,最后把原始链表 瓜分完之后再把奇偶链表连接起来就好啦。

 

代码:

class Solution {
public:ListNode* oddEvenList(ListNode* head) {if(head==nullptr || head->next==nullptr) return head;   //长度小于等于1的特殊情况直接返回ListNode* odd=head;ListNode* todd=head;ListNode* even=head->next;ListNode* teven=head->next;int index=1;head=teven->next;while(head!=nullptr){if(index%2==0){ //如果是偶节点teven->next=head;   //让偶接收teven=teven->next;}else{  //反之是奇节点todd->next=head;    //让奇接收todd=todd->next;}index++;head=head->next;}teven->next=nullptr;    //偶后面是空指针todd->next=even;        //奇后面是偶的开头return odd;}
};

http://www.lryc.cn/news/125892.html

相关文章:

  • docker 学习--03 环境安装(本人使用的win10 Linux也是在win10下模拟)
  • 【代码质量】认知复杂度(COGNITIVE COMPLEXITY)一种衡量可理解性的新方法
  • 什么是JavaScript中的内存泄漏和如何避免内存泄漏?
  • 安全头响应头(三)​X-Content-Type-Options
  • 13 计算机视觉-代码详解
  • jupyter打开ipynb后,还没有运行cell,反复报错
  • 一台阿里云服务器怎么部署多个网站?以CentOS系统为例
  • history记录日期时间和日志记录操作
  • RocketMQ 单机源码部署 自定义配置文件和端口以及acl权限配置解析
  • NuGet控制台命令初步使用
  • 2023年国赛数学建模思路 - 案例:FPTree-频繁模式树算法
  • Positive Technologies:有针对性的攻击占非洲所有攻击的 68%
  • Flink CDC系列之:TiDB CDC 导入 Elasticsearch
  • 未来混合动力汽车的发展:技术探索与前景展望
  • C进阶(2/7)前篇——指针进阶
  • C 内存分配器 mimalloc
  • leetcode做题笔记74搜索二维矩阵
  • 深信服数据中心管理系统 XXE漏洞复现
  • 【Kubernetes】Kubernetes的Pod进阶
  • 都错了!机械硬盘远比SSD更省电 最多领先94%
  • tomcat设置PermSize
  • JVM——分代收集理论和垃圾回收算法
  • jar包独立运行的几种方式
  • [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
  • uniapp使用命令创建页面
  • Linux(进程控制)
  • Java学习笔记——(18)进制介绍
  • 【数学建模】--灰色关联分析
  • 图像像素梯度
  • [论文笔记]Batch Normalization