python 对链表进行插入排序
对链表进行插入排序
插入排序算法:插入排序是迭代的,每次只移动一个元素,
直到所有元素可以形成一个有序的输出列表。
每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
重复直到所有输入数据插入完为止。示例 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 对链表进行插入排序相关推荐
- python实现链表的删除_干货||链表的技巧和算法总结
链表的操作总结 链表反转 这是一个简单的链表操作问题,在leetcode上面有52.7%的通过率,难度是简单.但是还是想在这里基于python做一下总结,顺便总结一下链表的各种操作. 首先先看一下 ...
- python之链表、单链表、双向链表、单向循环链表
python之链表.单链表.双向链表.单向循环链表 链表 顺序表的构建需要预先知道数据大小来申请连续的存储空间,而在进行扩充时,又需要进行数据的搬迁,所以使用起来并非很灵活 链表结构可以充分利用计算机 ...
- python实现链表反转(转置)
python实现链表反转(转置) 链表是面试里面经常涉及到的考点,因为链表的结构相比于Hashmap.Hashtable.Concurrenthashmap或者图等数据结构简单许多,对于后者更多面试的 ...
- 插入排序 链表 java_Java实现 LeetCode 147 对链表进行插入排序
147. 对链表进行插入排序 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将 ...
- Python 实现链表和二叉树
Python 实现链表和二叉树 1.链表 class Node:def __init__(self, init_data):self.data = init_dataself.next = Noned ...
- python算法与数据结构-插入排序算法(34)
阅读目录 一.插入排序的介绍 二.插入排序的原理 三.插入排序的图解 四.插入排序的python代码实现 五.插入排序的C语言代码实现 六.插入排序的时间复杂度 七.插入排序的稳定性 一.插入排序的介 ...
- python删除链表满足pred的元素_python 数据结构一 之 线性表
python数据结构教程第一课 从这里将会正式开始讲解python的一些实用的数据结构,原理加上实例源码. 一.简介 二.线性表的抽象数据类型 三.顺序表的实现 四.链接表的实现 1.单链表 2.带尾 ...
- python链表_使用python实现链表操作
一.概念梳理 链表是计算机科学里面应用应用最广泛的数据结构之一.它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧.环形缓冲和队列) 简单的说,一个列表就是单数据通过索引集合在一起.在C里面 ...
- leetcode 147. 对链表进行插入排序
对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插 ...
最新文章
- JAVA获取CLASSPATH路径--转
- python 鱼c工作室作业_鱼C工作室Python作业
- 附笔记pdf下载,MIT中文线性代数课程精细笔记[第四课]
- 反射获取构造方法并运行的快速的方式
- 如何在SAP Spartacus的scss里引入全局变量
- MyEclipse的build、clean、publish、clean(redeploy)的区别
- 锁具行业电子工程师岗位职责_赏金猎人招募电子产品开发工程师产品结构工程师...
- 上海交大原副校长毛军发院士,履新深圳大学校长
- java的三个环境变量是啥_JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)...
- 关于OpenCV中图像的widthStep
- 《5分钟商学院》--读书笔记
- iPhone~iPhone14屏幕尺寸和分辨率的相关知识 ( DPI vs PPI pt vs px)
- 因果推断理论框架 Potenial Outcomes Framework
- 输出星期几的英文表示
- centos审计服务audit导致使centos服务器不能登录,部署的应用不能运行和访问。
- mysql 查询本月所有天数统计对应数据
- 医生一句话,6岁女娃的视力从0.15回到1.0!
- 算法导论课后题和思考题 第3章
- vue 项目中的打包配置
- 小程序离屏canvas(createOffscreenCanvas)生成推广海报
热门文章
- 判断一颗二叉树是否为搜索二叉树和完全二叉树
- 【数学建模】MATLAB应用实战系列(九十三)-岭回归应用案例(附MATLAB和Python代码)
- MATLAB可视化实战系列(二十五)-MATLAB基于直方图的图像去雾
- tableau实战系列(八)-用数据桶实现图表的固定轴距
- 信号处理频谱分析中,如何选择合适的窗函数
- android安卓开发-eclipse平台下错误记录
- 【LeetCode从零单排】No189	.Rotate Array
- SpringBoot2.0新特性 - Quartz自动化配置集成
- Redis数据库的应用场景介绍
- kafka源码分析之二客户端分析