Python实现合并两个有序链表的方法示例


Posted in Python onJanuary 31, 2019

本文实例讲述了Python实现合并两个有序链表的方法。分享给大家供大家参考,具体如下:

Python实现合并两个有序链表的方法示例

思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一个链表直接接上就好

# Definition for singly-linked list.
# class ListNode(object):
#   def __init__(self, x):
#     self.val = x
#     self.next = None
class Solution(object):
  def mergeTwoLists(self, l1, l2):
    """
    :type l1: ListNode
    :type l2: ListNode
    :rtype: ListNode
    """
    #先考虑链表其中一个为空的情况
    if not l1:
      return l2
    if not l2:
      return l1
    curNode1 = l1
    curNode2 = l2
    #先选出第一个节点
    if curNode1.val < curNode2.val:
      head = curNode1
      curNode1 = curNode1.next
    else:
      head = curNode2
      curNode2 = curNode2.next
    cur = head
    while curNode1 and curNode2:
      if curNode1.val < curNode2.val:
        cur.next = curNode1
        curNode1 = curNode1.next
      else:
        cur.next = curNode2
        curNode2 = curNode2.next
      cur = cur.next
    #一直循环到有一个链表先结束
    #如果是链表1先结束,则拼上链表2剩余的那段
    if not curNode1:
      cur.next = curNode2
    #如果是链表2先结束,则拼上链表1剩余的那段
    else:
      cur.next = curNode1
    return head

Python实现合并两个有序链表的方法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
python求素数示例分享
Feb 16 Python
Python EOL while scanning string literal问题解决方法
Sep 18 Python
python获取文件扩展名的方法
Jul 06 Python
Python 修改列表中的元素方法
Jun 26 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
Python应用领域和就业形势分析总结
May 14 Python
利用Django模版生成树状结构实例代码
May 19 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
Django 日志配置按日期滚动的方法
Jan 31 #Python
Python类的继承用法示例
Jan 31 #Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 #Python
python3使用QQ邮箱发送邮件
May 20 #Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 #Python
对python条件表达式的四种实现方法小结
Jan 30 #Python
python从子线程中获得返回值的方法
Jan 30 #Python
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
杏林同学录(一)
2006/10/09 PHP
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
python中的decimal类型转换实例详解
2019/06/26 Python
给学校的建议书
2014/03/12 职场文书
关于运动会的口号
2014/06/07 职场文书
生活小常识广播稿
2014/09/16 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
婚宴领导致辞
2015/07/28 职场文书
诚信考试主题班会
2015/08/17 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
Linux安装apache服务器的配置过程
2021/11/27 Servers