对链表进行插入排序

插入排序算法:插入排序是迭代的,每次只移动一个元素,
直到所有元素可以形成一个有序的输出列表。
每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
重复直到所有输入数据插入完为止。示例 1:输入: 4->2->1->3
输出: 1->2->3->4
示例 2:输入: -1->5->3->4->0
输出: -1->0->3->4->5

题解

if not head:return head# 添加虚拟头节点
newHead = ListNode()p = head
# 遍历原始链表
while p:tmp = p.next # 记录原始链表的下一个节点q = newHead # 每一次遍历都把新的头节点赋值给q# 循环遍历的目的 找到当前p节点插入到新的链表中的位置while q.next and q.next.val <= p.val:q = q.nextp.next = q.next # 把新的链表后面的节点追加到当前p节点的后面q.next = p # 再把p赋值给q.next 即q代表的就是,当前的p节点+q.next节点p = tmp # 向后移动一个单位return newHead.next

python 对链表进行插入排序相关推荐

  1. python实现链表的删除_干货||链表的技巧和算法总结

    链表的操作总结   链表反转 这是一个简单的链表操作问题,在leetcode上面有52.7%的通过率,难度是简单.但是还是想在这里基于python做一下总结,顺便总结一下链表的各种操作. 首先先看一下 ...

  2. python之链表、单链表、双向链表、单向循环链表

    python之链表.单链表.双向链表.单向循环链表 链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时,又需要进行数据的搬迁,所以使用起来并非很灵活 链表结构可以充分利用计算机 ...

  3. python实现链表反转(转置)

    python实现链表反转(转置) 链表是面试里面经常涉及到的考点,因为链表的结构相比于Hashmap.Hashtable.Concurrenthashmap或者图等数据结构简单许多,对于后者更多面试的 ...

  4. 插入排序 链表 java_Java实现 LeetCode 147 对链表进行插入排序

    147. 对链表进行插入排序 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将 ...

  5. Python 实现链表和二叉树

    Python 实现链表和二叉树 1.链表 class Node:def __init__(self, init_data):self.data = init_dataself.next = Noned ...

  6. python算法与数据结构-插入排序算法(34)

    阅读目录 一.插入排序的介绍 二.插入排序的原理 三.插入排序的图解 四.插入排序的python代码实现 五.插入排序的C语言代码实现 六.插入排序的时间复杂度 七.插入排序的稳定性 一.插入排序的介 ...

  7. python删除链表满足pred的元素_python 数据结构一 之 线性表

    python数据结构教程第一课 从这里将会正式开始讲解python的一些实用的数据结构,原理加上实例源码. 一.简介 二.线性表的抽象数据类型 三.顺序表的实现 四.链接表的实现 1.单链表 2.带尾 ...

  8. python链表_使用python实现链表操作

    一.概念梳理 链表是计算机科学里面应用应用最广泛的数据结构之一.它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧.环形缓冲和队列) 简单的说,一个列表就是单数据通过索引集合在一起.在C里面 ...

  9. leetcode 147. 对链表进行插入排序

    对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插 ...

最新文章

  1. JAVA获取CLASSPATH路径--转
  2. python 鱼c工作室作业_鱼C工作室Python作业
  3. 附笔记pdf下载,MIT中文线性代数课程精细笔记[第四课]
  4. 反射获取构造方法并运行的快速的方式
  5. 如何在SAP Spartacus的scss里引入全局变量
  6. MyEclipse的build、clean、publish、clean(redeploy)的区别
  7. 锁具行业电子工程师岗位职责_赏金猎人招募电子产品开发工程师产品结构工程师...
  8. 上海交大原副校长毛军发院士,履新深圳大学校长
  9. java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
  10. 关于OpenCV中图像的widthStep
  11. 《5分钟商学院》--读书笔记
  12. iPhone~iPhone14屏幕尺寸和分辨率的相关知识 ( DPI vs PPI pt vs px)
  13. 因果推断理论框架 Potenial Outcomes Framework
  14. 输出星期几的英文表示
  15. centos审计服务audit导致使centos服务器不能登录,部署的应用不能运行和访问。
  16. mysql 查询本月所有天数统计对应数据
  17. 医生一句话,6岁女娃的视力从0.15回到1.0!
  18. 算法导论课后题和思考题 第3章
  19. vue 项目中的打包配置
  20. 小程序离屏canvas(createOffscreenCanvas)生成推广海报

热门文章

  1. 判断一颗二叉树是否为搜索二叉树和完全二叉树
  2. 【数学建模】MATLAB应用实战系列(九十三)-岭回归应用案例(附MATLAB和Python代码)
  3. MATLAB可视化实战系列(二十五)-MATLAB基于直方图的图像去雾
  4. tableau实战系列(八)-用数据桶实现图表的固定轴距
  5. 信号处理频谱分析中,如何选择合适的窗函数
  6. android安卓开发-eclipse平台下错误记录
  7. 【LeetCode从零单排】No189 .Rotate Array
  8. SpringBoot2.0新特性 - Quartz自动化配置集成
  9. Redis数据库的应用场景介绍
  10. kafka源码分析之二客户端分析