python 奇偶链表

python-leetcode-奇偶链表 可以通过将奇数索引和偶数索引的节点分别链表化,最后再将它们合并起来,从而解决这个问题。 阅读详情

|奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。

示例 1:

输入: 1->2->3->4->5->NULL
输出: 1->3->5->2->4->NULL
示例 2:

输入: 2->1->3->5->6->4->7->NULL
输出: 2->3->6->7->1->5->4->NULL

|题解

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    """
    解题思路:
    1.通过count记录节点位置,按奇偶划分
    2.分别创建 奇数头指针 和 偶数头指针
    3.把对应位置的数据用头指针串联起来
    4.奇数链表和偶数链表拼接 
    """
    def oddEvenList(self, head: ListNode) -> ListNode:
        cur = head
        count = 1    # 记录当前节点的位置

        # even_head 作为偶数链表的头指针 
        even_head = None
        even_tail = None

        # 引入偶数链表的虚拟头节点,目的是使下面的处理逻辑保持一致
        node = ListNode()
        even_head = node
        even_tail = even_head

        # odd_head 作为奇数链表的头指针
        odd_head = None
        odd_tail = None

        # 引入奇数链表的虚拟头节点,目的是使下面的处理逻辑保持一致
        node = ListNode()
        odd_head = node
        odd_tail = odd_head

        while cur:
            per = cur.next
            # count跟2求余,如果余数为0,则当前节点为偶数节点,否则为奇数节点
            cur.next = None # 赋值为None的目的是 只区当前节点,截断后面的节点,如果不截断会出现最后一个节点,即在奇数链表,又在偶数链表
            if count % 2 == 0:
                even_tail.next = cur
                even_tail = cur
            else:
                odd_tail.next = cur
                odd_tail = cur

            count += 1
            cur = per
        odd_tail.next = even_head.next

        return odd_head.next
用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单) 1. 首先是链表翻转 效果: 0->1->2->3 ...... ->9     变为   9->8->7->......->0 class NodeList: def __init__(self,x): self.next = None self.val = x def reverse(root): save = [] 阅读详情

相关推荐

【嵌入式Linux】EC20模块多运营商自适应PPP拨号实战:从IMSI识别到网络配置

本文详细介绍了在嵌入式Linux系统中,如何基于EC20 4G模块实现多运营商自适应PPP拨号。通过解析SIM卡的IMSI识别运营商,并动态配置对应的APN和拨号参数,结合AT指令交互与健壮的pppd脚本,解决了设备跨地域部署时的网络自动连接问题,提升了物联网设备的部署效率和稳定性。

fox11的博客 903

leetcode 奇偶链表 Java

题干 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2...

qq_43491066的博客 262

1553B通信项目开发笔记(一)协议概述

最近接了个项目,需要用1553B协议通信,仅作为RT端口进行通信,控制器采用ARM 使用芯片为国产的BU61580芯片,功能和引脚和DDC的61580完全一致。

u010396127的博客 2万+

Python数据结构与算法篇(十一)-- 链表的应用与常见题型

本篇信息量巨大,首先对比链表和数组,接着解决单链表的反转、删除某一节点、插入数据、查找中间节点、求倒数第k个结点、对称链表、单链表是否有环、两个链表是否相交,最后用LeetCode上的真题来实战删除链表结点、反转链表、合并、排序、环形链表常用技巧。

CarpeDiem 2385

NMS非极大值抑制算法原理

NMS非极大值抑制算法

pywin 3501

AOSP 8.0.0编译中的ANDROID_DATA缺失问题解决方案

在AOSP编译过程中,环境变量和路径设置的正确性至关重要。遇到相关的错误时,检查并修正环境配置通常是解决问题的关键。希望本文提供的分析和解决方案能帮助你顺利编译AOSP。

m0_74337424的博客 398

leetcode328-奇偶链表(python)

# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def oddEvenList(self, head: ListNode) -&gt...

yzy的博客 628

Python爬虫实战:Boss直聘职位数据采集实战 - Playwright + 结构化解析完整方案(附CSV导出 + SQLite持久化存储)!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 2187

Python 奇偶链表(索引组合 && 数值组合)

按照链表索引的奇偶性或者按照链表节点数值的奇偶性进行组合

Ahjol171的博客 657

光谱数据预处理综合

除了化学信息,光谱还包含其他不相关或不需要的信息,如电噪声,基质背景,杂散光,散射效应等。在用化学计量学方法建立校准模型时,利用预处理方法消除光谱数据中的无关信息和噪声是非常必要的。

qq_44204759的博客 5191

硬件电路设计采集电路

摘要:采集电路是硬件设计中连接物理世界与数字系统的关键环节,主要用于将温度、压力等物理量转换为电信号。常见的采集电路包括模拟量采集(如温度、电压)、数字量采集(如开关状态)和特殊信号采集(如光、声音)。设计时需重点关注传感器选型、信号调理、电源接地、抗干扰和ADC配置等核心要素,确保信号链路的完整性和稳定性。合理的电路设计需结合具体应用场景,通过仿真和测试验证性能,最终实现精确可靠的数据采集。

qq_37999850的博客 1798

奇偶链表——中等python版

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

weixin_49160714的博客 232

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Leetcode.328.奇偶链表.python

Leetcode.328.奇偶链表一、拼接奇数链表与偶数链表二、 一、拼接奇数链表与偶数链表 先将奇数节点和偶数节点分离。 奇数节点和偶数节点的头节点分别为:evenhead=head.next,odd=head,even=evenhead. 更新奇数节点的时候,odd.next=even.next, odd=odd.next. 更新偶数节点的时候,even.next=odd.next, even=even.next. 分离完毕的条件是:even/even.next=None. 最后,将奇偶链表连接起来od

m0_51364589的博客 322

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

LeetCode 328. 奇偶链表 | Python

无摘要

"大梦三千秋的博客 559

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode-328. 奇偶链表 Python3版本

328.奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3...

章小幽的博客 392

Python | Leetcode Python题解之第328题奇偶链表

Python | Leetcode Python题解之第328题奇偶链表

Mopes__的博客 434

Leetcode(java,python题解):328.奇偶链表

328.奇偶链表 题目描述 Leetcode:https://leetcode-cn.com/problems/odd-even-linked-list/ 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes ...

_淡泊宁静的博客 224

机试刷题_链表的奇偶重排【Python】

链表

yuanyuet的博客 267

Python 实现通过指针实现链表翻转,链表奇偶下标交换,链表的冒泡排序

python 有关链表的操作问题

u012560212的博客 851

Leetcode 328. 奇偶链表 Python3实现(超详细注释!)

Leetcode 328. 奇偶链表 Python3实现 给定一个单链表,实现将所有的奇数节点和偶数节点分别排在一起,加了详细的注释,方便日后复习,也希望能帮到其他小伙伴,如有错误,欢迎指正! Python3代码如下: class Solution: def oddEvenList(self, head): # 首先判空 if not head: return head # 定义奇数链的指针 odd_p = he

Println30的博客 330

leetcode题解记录-328奇偶链表(python3)

题目 奇偶链表 题目链接 官方题解 关键词 链表 代码记录 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def oddEvenList(self, head: ListNode) -> ListNode:

SZ-crystal 180

LeetCode328——奇偶链表 python

如题: 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5...

bibigod的博客 441

328. 奇偶链表--PYTHON

自己1:首先将链表分奇偶位置分别将原链表分开成为两个链表,然后将偶数链表拼接在奇数链表之后,让后返回拼接后的链表即可。 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = No...

宋建国的博客 318

奇偶链表Python解法

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/odd-even-linked-list 例: 输入: head = [2,1,3,5,6

皮_客的博客 514

【python】LeetCode 奇偶链表

1.奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3-&g...

Keep Moving 715
上一篇: python 回文链表
下一篇: python 链表中倒数第k个节点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值