列表转链表+链表合并

2023-11-18

列表转链表

思路:生成一个头节点,current指向该节点,再生成新节点,给该节点赋值val,更新current位置,依次类推。

class ListNode(object):
    def __int__(self,val=0,next=None):
        self.val = val
        self.next = next

class Solution(object):
    def mergeTwoLists(list1, list2):
        """
        :type list1: Optional[ListNode]
        :type list2: Optional[ListNode]
        :rtype: Optional[ListNode]
        """
        #这里ListNode需要赋val和next 
        #但ListNode类初始化时有初始val和next 这里是个疑问?
        ListNode.val = 0
        ListNode.next = None
        dummy = current = ListNode()
        while list1 and list2:
            if list1.val < list2.val:
                current.next = list1
                current = list1
                list1 = list1.next
            else:
                current.next = list2
                current = list2
                list2 = list2.next
        if list1 and not list2:
            current.next = list1
        elif not list1 and list2:
            current.next = list2

        return dummy.next

def list2link(list):#列表转链表
    current = head = ListNode()
    for i in range(len(list)):
        current.val= list[i]
        current.next = ListNode()
        current = current.next
    return head

list1 = [1,2,4]
list2 = [1,3,4]
listNode1 = list2link(list1)#链表首地址
listNode2 = list2link(list2)
# print (listNode1.val)
# print (listNode1.next.val)
# print (listNode1.next.next.val)
# print (listNode2.val)
# print (listNode2.next.val)
# print (listNode2.next.next.val)
a = Solution.mergeTwoLists(listNode1, listNode2)
#print (a.val)

#打印链表 第0位置是空链首
for i in range(1,len(list1)+len(list2)):
    print (a.val,end=' ')
    a = a.next
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表转链表+链表合并 的相关文章

随机推荐

  • Python自学笔记3-数据类型

    Python支持的数值类型包括 名称 功能 int 整数 long 长整型 float 实数型 complex 复数 示例代码 1 2 3 4 5 6 7 8 9 10
  • Python:os.walk() 获取指定文件夹下所有的文件绝对路径【包含层级目录】

    代码参数详解 import os 遍历打印指定文件夹下所有的文件名称 dirPath 指定遍历的文件夹路径 def listFiles dirPath 准备一个空列表 用来存储遍历数据 fileList os walk dirPath 走查
  • 设置vim 永久显示行号

    在linux环境下 vim是常用的代码查看和编辑工具 在程序编译出错时 一般会提示出错的行号 但是用vim打开的代码确不显示行号 错误语句的定位非常不便 那么怎样才能让vim显示代码的行号呢 1 临时显示行号 如果只是临时显示vim的行号
  • Error in createDataPartition(...):y must have at least 2 data points

    项目场景 在R中使用caret包 划分训练集和测试集时 出现错误Error in createDataPartition data OS STATUS p 0 5 list FALSE y must have at least 2 data
  • pytorch 多类分割损失 (Generalized Dice Loss)

    引自该文章python 常用函数和自定义函数整理 2 Pytorch相关处理 Generalized Dice Loss相关代码 如有错误 烦请指正 多类分割dice损失 def generalized dice loss pred tar
  • java Socket 简单实现客户端与服务器间通信(仿聊天室)

    java Socket TCP协议简单实现客户端与服务器间的通信 打赏 执行效果 启动服务器和3个客户端 进行群聊和私聊 执行过程 服务端 首先创建服务器套接字ServerSocket对象并绑定端口 启动服务器 然后ServerSocket
  • 电子学会 青少年软件编程(C语言)等级考试二级 训练题汇总

    一 NOI题库 1 6编程基础之一维数组 OpenJudge OpenJudge 题目 1 7编程基础之字符串 OpenJudge OpenJudge 题目 1 8编程基础之多维数组 OpenJudge OpenJudge 题目 1 9编程
  • cookie、session、token的概念以及区别

    http链接都是无状态的 即是说浏览器无法判断这一次登陆和上一次登陆有没有关联 所以引入cookie和session的概念 让http可以判断你是否曾登陆过 cookie Cookie是客户端保存用户信息的一种机制 用来记录用户的一些信息
  • 一次内核hung task分析

    http blog chinaunix net uid 14528823 id 4406510 html 1 内核hung task检测机制由来 我们知道进程等待IO时 经常处于D状态 即TASK UNINTERRUPTIBLE状态 处于这
  • python读取csv中所遇到的中文编码问题

    由于本人准备学习使用一些机器学习算法 第一个是DecisionTree 然后使用到了西瓜案例 因为涉及到讨厌的编码问题 所以找了好多办法去尝试读取csv文件 1 pandas pandas可谓是神奇 用python学习机器学习不可缺少的一个
  • 如何解决WIN10中,进入本地组策略时出现“命名空间已经被定义为存储中另一文件的目标命名空间”

    1 首先 怎么打开组策略 win R gpedit msc 回车 2 当打开组策略时出现如下的提示 当然关闭后还是可以正常使用的 只是如何去掉该提示呢 3 解决办法 引起该问题的原因就是提示的C WINDOWS PolicyDefiniti
  • Linux脚本启动jar包

    这里主要为shell脚本启动部署在服务器中jar包 bin bash 这里可替换为你自己的执行程序 其他代码无需更改 APP NAME demo jar 使用说明 用来提示输入参数 usage echo Usage sh demo sh s
  • Android上层与驱动交互完整篇(二)Hal层篇

    Android上层与驱动交互完整篇 二 Hal层篇 上篇写了I2C驱动如何来编写 但是驱动里并没有交代如何具体的跟设备通信 现在我们在hal层实现这部分逻辑代码 HAL全称Hardware Abstract Layer 硬件抽象层 它向下屏
  • 基于改进二进制粒子群算法的电力系统机组组合——复现

    目录 文章摘要 研究背景 二进制粒子群算法 代码运行效果 本文代码分享 文章摘要 提出了1种改进的BS0 二进制粒子群 方法求解机组组合问题 首先 利用优先顺序法确定初始的机组组合 根据这个结果 确定优化窗口的范围 在此范围内利用BPSO进
  • WebLogic-执行队列

    一 Tuning the Application Server 二 执行队列 Using Work Managers to Optimize Scheduled WorkThis chapter describes how WebLogic
  • K-近邻算法

    一 K 近邻算法 1 介绍 K 近邻算法 K Nearest Neighbor 又叫KNN算法 指如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别 则该样本也属于这个类别 也就是对于新输入的实例 从数据集中找到于该实例最邻
  • Ubuntu:停掉某个网络

    ifconfig 网口名 down 例子如下 ifconfig docker0 down
  • 163_omnicore升级后无法连接

    qq群里转载的 最近由于omnicore要升级 每个要升级的人都在问rpc怎么连不了了 这里统一回复下 1 为什么连不了 这是bitcoin0 18 0更改了rpcallowip自动侦听的功能 必须使用rpcbind指定要侦听的ip 2 怎
  • 约瑟夫问题详解

    约瑟夫问题 有n个人 编号为1 n 从第一个人开始报数 从1开始报 报到m的人会死掉 然后从第m 1个人开始 重复以上过程 在死了n 1个人后 问最后一个人的编号是 暴力 题目传送门 暴力都想不到就真是让人折服了 暴力的话大模拟即可 不是重
  • 列表转链表+链表合并

    列表转链表 思路 生成一个头节点 current指向该节点 再生成新节点 给该节点赋值val 更新current位置 依次类推 class ListNode object def int self val 0 next None self