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中常用检测字符串相关函数汇总
Apr 15 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
Python断言assert的用法代码解析
Feb 03 Python
20个常用Python运维库和模块
Feb 12 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
Python3基于sax解析xml操作示例
May 22 Python
python并发和异步编程实例
Nov 15 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
python爬取招聘要求等信息实例
Nov 20 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
咖啡的植物学知识
2021/03/03 咖啡文化
laravel使用数据库测试注意事项
2020/04/10 PHP
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python网络编程学习笔记(一)
2014/06/09 Python
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python 发送邮件方法总结
2020/08/10 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
.NET现在共支持多少种语言
2014/02/26 面试题
个人自荐信
2013/12/05 职场文书
物业门卫岗位职责
2013/12/28 职场文书
单身联谊活动方案
2014/01/29 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
技能比赛获奖感言
2014/02/14 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
React配置子路由的实现
2021/06/03 Javascript
java实现对Hadoop的操作
2021/07/01 Java/Android
Python matplotlib绘制雷达图
2022/04/13 Python