如何在python中合并两个有序列表

  介绍

本篇文章给大家分享的是有关如何在python中合并两个有序列表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。


示例1

如何在python中合并两个有序列表

输入:l1=(1、2、4), l2=(1, 3, 4)
输出:[1,1,2,3,4,4]

示例2

输入:l1=[], l2=[]
输出:[]

示例3

输入:l1=[], l2 [0]=
输出:[0]

代码详解

因为LeetCode服务器上已经封装了链表类,在本地测试时我需要自己来实现链表类,代码如下

class  ListNode:   def 才能;__init__ (val,自我,,下一个=None):   ,,,if  isinstance (val, int):   ,,,,,self.val =瓦尔   ,,,,,self.next =,   ,,,elif  isinstance (val,列出):   ,,,,,self.val =, val [0]   ,,,,,self.next =,没有   ,,,,,head =自我   ,,,,,for 小姐:拷贝范围(len (val)):   ,,,,,,,node =, ListNode (val[我],没有)   ,,,,,,,head.next =,节点   ,,,,,,,head =,。下一个

递归法

递归法的思路比较简单,我们需要先判断<代码>链表l1 和<代码>链表l2> l1大于l2 我们就更改链表l2的下一个节点,然后再比较l2的下一个节点和l1,反之可得另一种情况的处理方法。

class 解决方案:   def 才能;mergeTwoLists (l1:自我,还以为,ListNode, l2:, ListNode),→, ListNode:   ,,,#如果链表l1为没有直接返回链表l2即可   ,,,if  l1  is 没有:   ,,,,,return  l2   ,,,#如果链表l2为没有直接返回链表l1即可   ,,,elif  l2  is 没有:   ,,,,,return  l1   ,,,#如果链表l1大于链表l2   ,,,elif  l1.val 祝辞,l2.val:   ,,,,,#更改链表l2下一个节点的指向   ,,,,,l2.next =, self.mergeTwoLists (l1, l2.next)   ,,,,,return  l2   ,,,:   ,,,,,#更改链表l1下一个节点的指向   ,,,,,l1.next =, self.mergeTwoLists (l1.next l2)   ,,,,,return  l1         时间=l1  ListNode ((1、2、4))   时间=l2  ListNode ((1, 3, 4))   时间=s 解决方案()   时间=l  s.mergeTwoLists (l1, l2)   while  l:   打印(l.val)才能   l 才能=,l。下一个

遍历法

这个算法更简单了,我们只需要遍历链表l1和l2然后再比较大小即可,对于最后没遍历完的部分,直接追加到合并链表的后面即可。

class 解决方案:   def 才能;mergeTwoLists (l1:自我,还以为,ListNode, l2:, ListNode),→, ListNode:   ,,,#用来合并链表   ,,,prehead =, ListNode (1)   ,,,#创建一个哨兵节点   ,,,pre =prehead   ,,,while  l1 以及l2:   ,,,,,if  l1.val 祝辞,l2.val:   ,,,,,,,pre.next =l2   ,,,,,,,l2 =l2.next   ,,,,,其他的:   ,,,,,,,pre.next =l1   ,,,,,,,l1 =l1.next   ,,,,,#更改哨兵节点的下一个指向   ,,,,,pre =pre.next   ,,,pre.next =, l1  if  l1  else  l2      ,,,return  prehead.next         时间=l1  ListNode ((1、2、4))   时间=l2  ListNode ((1, 3, 4))   时间=s 解决方案()   时间=l  s.mergeTwoLists (l1, l2)   while  l:   打印(l.val)才能   l 才能=,l。下

以上就是如何在python中合并两个有序列表,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

如何在python中合并两个有序列表