leetcode-328 奇偶链表

news/2024/11/30 0:42:44/

题目如下:
给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。
第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。
请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。
你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

示例如下:

在这里插入图片描述

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

提示:

  • n == 链表中的节点数
  • 0 <= n <= 104
  • -106 <= Node.val <= 106

算法思路

官方题解我不知道它是怎么做的,反正我是这样做的。直接在在原链表head进行修改即可。
如果链表的节点的超过2个,那么把之后索引下标为奇数的节点连接在head的第一个节点后面(做完之后把对应的指针后移),把索引下标为偶数的节点连接在head的第二个节点后面(做完之后把对应的指针后移),直到到达最后一个节点即可。

图解如下(第5个元素没有画):

实现代码如下(Python):

# Definition for singly-linked list.
class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = nextclass Solution(object):def oddEvenList(self, head):""":type head: ListNode:rtype: ListNode"""p = headcount = 1p1 = Nonelast = Nonewhile p:next = p.nextp.next = Noneif count == 1:p1 = pelif count == 2:p1.next = plast = p1.nextelse:if count % 2 != 0:p2 = p1.nextp1.next = pp1 = p1.nextp1.next = p2else:last.next = plast = last.nextp = nextcount += 1return headif __name__ == '__main__':a = Solution()head = ListNode(1, ListNode(2,ListNode(3, ListNode(4,ListNode(5,None)))))a.oddEvenList(head)

运行结果:
请添加图片描述


http://www.ppmy.cn/news/55216.html

相关文章

聚观早报|特斯拉向第三方电动车开放充电桩;Epic 诉苹果垄断败诉

今日要闻&#xff1a;特斯拉向第三方电动车开放充电桩&#xff1b;我国全面实现不动产统一登记&#xff1b;Epic 诉苹果垄断败诉&#xff1b;腾讯大股东Naspers再减持近79万股&#xff1b;星巴克中国门店将超过万家 特斯拉向第三方电动车开放充电桩 近日&#xff0c;特斯拉官方…

OpenJudge - 39:多项式输出

目录 一、题目描述 二、代码实现 一、题目描述 一元 n 次多项式可用如下的表达式表示&#xff1a; ​ 其中&#xff0c;​ 称为 i 次项&#xff0c;​ 称为 i 次项的系数。给出一个一元多项式各项的次数和系数&#xff0c;请按照如下规定的格式要求输出该多项式&#xff…

计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?

文章目录 一、计算机视觉毕业后找不到工作怎么办&#xff1f;二、大环境&#xff1a;前两年的泡沫太大三、还是要把自己的基本功搞扎实&#xff0c;真正的人才什么时候都紧缺四、转换思路&#xff0c;另投他坑五、要有毅力&#xff0c;心态放平六、最后的建议 一、计算机视觉毕…

合创视觉平面设计中基础色彩原则

1、灰度 灰度是一种黑白模式的色彩模式。但与黑白二色的位图不同&#xff0c;从0--255有256种不同等级的明度变化。灰度是所有创造的根源&#xff0c;也是色彩感觉不佳设计师的救星。   2、RGB RGB是一种以色光为基础的色彩模式,它是由红(Red)、绿(Green)、蓝(BIue)三种…

选择什么电容笔比较好?平价好用的iPad电容笔推荐

科学技术的迅速发展使人们的生活发生了巨大的变化。如今&#xff0c;众多的电子和数码产品层出不穷&#xff0c;而这种能够与平板电脑配套的电容笔也是如此。随着电容笔的不断发展&#xff0c;其应用范围也将不断扩大&#xff0c;今天&#xff0c;我将向大家推荐一些具有较高性…

人群计数:技术难点、商业产品化成功案例、现状、传统做法、硬件设备、

现状&#xff1a; 比较成熟了&#xff0c;准确率已经很高了&#xff08;有多高&#xff0c;后面我搞懂metrics高到什么程度&#xff0c;再汇报过来&#xff09; 商业公司基本把这个领域做的很透彻了&#xff0c;performance基本到了一一个无法提高的位置了&#xff08;和图像…

实时数仓--数据实时接入模块相关视频录制完成

数据实时接入部分的视频已于昨晚录制完成&#xff0c;由于视频中涉及实现思路和实现代码都来自生产项目&#xff0c;且经过作者多次熬夜录制完成&#xff0c;所以这套视频需付费观看&#xff0c;介意的朋友请见谅。 具体说明如下&#xff1a; 对《实时数仓架构那些事儿》系列文…

视频是不能 P 的系列:使用 Milvus 实现海量人脸快速检索

最近我一直在优化一个人脸识别项目,这个过程令我深感科学的尽头永远都是殊途同归。一年前,我使用 dlib 实现人脸识别时遇到了两个悬而未决的问题:一是因为人脸样本数目增加导致性能下降问题;二是如何快速地判断目标人脸是否在人脸样本中。然而,在经过虹软人脸识别 SDK 的折…