当前位置: 首页 > news >正文

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

这个题目需要我们使用插入排序去解决链表的排序。

思路:使用dummyHead(人造链表头)进行插入排序。

首先我们使用两个指针,一个last和一个cur进行标记,比较他们两的大小。

如果说(1)last.val <= cur.val 那么我们不需要进行排序,继续向后移动。

(2)last.val > cur.val 此时需要将cur向前进行插入,那么我们需要寻找插入的位置。

因为last及其之前的节点都已经是有序的了,那么我们就从dummyHead向后寻找那个位置,即pre(初始为dummyHead,逐渐向后寻找).next.val <= cur.val

寻找到这个位置后,我们就可以进行一番操作。

last.next = cur.next;

cur.next = pre.next;

pre.next = cur;

最后cur = last.next;

代码:

public static ListNode insertionSortList(ListNode head) {if(head == null) return head;ListNode dummyHead = new ListNode(0);dummyHead.next = head;ListNode last = head;ListNode cur = head.next;while(cur != null){if(last.val <= cur.val){last = last.next;}else {ListNode pre = dummyHead;while(pre.next.val <= cur.val) pre = pre.next;last.next = cur.next;cur.next = pre.next;pre.next = cur;}cur = last.next;}return dummyHead.next;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Kafka基础入门-代码实操
  • 易懂的吉文斯(Givens)变换(一)
  • 如何使用Gunicorn配置SSL/TLS加密Web服务
  • 序列化与反序列化及不同序列化方式的性能对比
  • 第四章 Redis(2023版本IDEA)
  • SVN 分支管理深入解析
  • 机器人三定律及伦理分析
  • 通过 PPPOE 将 linux 服务器作为本地局域网 IPv4 外网网关
  • Zookeeper-数据结构
  • 优化Cocos Creator 包体体积
  • IDEA启动Web项目总是提示端口占用
  • VsCode远程ssh连接失败:Could not establish connection to XXX
  • Vue3学习体验(一)
  • Reinforced Causal Explainer for GNN论文笔记
  • python基础语法 005 函数1-2 函数作用域
  • Angular 响应式表单之下拉框
  • JavaScript HTML DOM
  • Python打包系统简单入门
  • react 代码优化(一) ——事件处理
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 半理解系列--Promise的进化史
  • 从tcpdump抓包看TCP/IP协议
  • 从重复到重用
  • 免费小说阅读小程序
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 深入浅出webpack学习(1)--核心概念
  • 算法---两个栈实现一个队列
  • 学习笔记:对象,原型和继承(1)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 一些css基础学习笔记
  • 异步
  • 鱼骨图 - 如何绘制?
  • ​​​【收录 Hello 算法】9.4 小结
  • #162 (Div. 2)
  • #if和#ifdef区别
  • #nginx配置案例
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (1)(1.13) SiK无线电高级配置(六)
  • (12)Hive调优——count distinct去重优化
  • (2)空速传感器
  • (C11) 泛型表达式
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (面试必看!)锁策略
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)Linux网络编程入门
  • (轉貼) UML中文FAQ (OO) (UML)
  • .gitignore文件---让git自动忽略指定文件
  • .NET Core 和 .NET Framework 中的 MEF2