news 2026/7/28 14:03:31

【LeetCode题解】147. 对链表进行插入排序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【LeetCode题解】147. 对链表进行插入排序

对链表进行插入排序。

插入排序算法:

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

题解:

  • 用[ pre, cur, post]遍历整个链表
  • 取出cur,将pre与cur中间截断【因为无指针比较,如果pre直接与post连接,无法选择合适地点中止cur遍历,cur是不应该插入到post之后的】,cur与post中间截断
  • 从链表头开始将每个结点与cur的值进行比较,找到cur的插入位置,分为前表(start 到 pre)尾(即pre之后,原位置,这种情况跳过即可),或前表中间部分
  • 将前表与后表进行连接
  • 继续循环
class Solution { public ListNode insertionSortList(ListNode head) { if(head==null || head.next==null){ return head; } ListNode start = new ListNode(-1); start.next = head; //cur为当前待插入结点,pre为cur前结点 ListNode cur = head; ListNode pre = head; cur = pre.next; //post记录截断后带插入cur结点后续结点 ListNode post = null; while(pre!=null && cur!=null){ if(cur.val>=pre.val){ //cur当前有序 cur = cur.next; pre = pre.next; continue; } post = cur.next; pre.next = null; cur.next = null; ListNode tmp = start; while(tmp.next!=null && tmp.next.val<cur.val){ tmp = tmp.next; } //已找到位置,插入 cur.next = tmp.next; tmp.next = cur; //定位新pre并连接post pre.next = post; cur = pre.next; } return start.next; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 14:03:04

MySQL数据库知识

MySQL MySQL 是一种关系型数据库,并且是开源免费的&#xff0c;方便扩展。MySQL是开放源代码的&#xff0c;任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。 事务相关 定义&#xff1a;事务是逻辑上的一组…

作者头像 李华
网站建设 2026/7/28 14:01:18

AI与大模型新闻日报 | 2026-07-28

AI与大模型新闻日报20260728大模型技术共 11 条新闻1. 超维动力携手北大医疗&#xff1a;务实构建具身智能医疗落地路径来源: 量子位时间: 2026-07-27 09:55摘要: 一次技术与场景的深度耦合2. 上海青浦与华为共建&#xff0c;长三角 AI 联合创新中心正式启用来源: IT 之家时间:…

作者头像 李华
网站建设 2026/7/28 13:58:13

Switch-Toolbox:免费开源的游戏文件编辑神器,支持50+任天堂格式

Switch-Toolbox&#xff1a;免费开源的游戏文件编辑神器&#xff0c;支持50任天堂格式 【免费下载链接】Switch-Toolbox A tool to edit many video game file formats 项目地址: https://gitcode.com/gh_mirrors/sw/Switch-Toolbox 你是否曾梦想修改自己喜爱的任天堂游…

作者头像 李华
网站建设 2026/7/28 13:57:34

前端转型AI Agent,3个月落地指南

对于前端开发者来说&#xff0c;转型AI Agent其实是「低门槛、高回报」的选择——我们常年积累的状态管理、异步编程、工程化、用户交互能力&#xff0c;都是AI Agent开发的核心优势&#xff0c;无需从零起步。 今天就把前端转AI Agent的「必学内容、工具栈、学习路线、实战项目…

作者头像 李华
网站建设 2026/7/28 13:57:28

Claude中转站Base URL配置:本地、测试和生产环境别混用

Claude中转站 的接入动作看起来很简单&#xff1a;替换 Base URL&#xff0c;配置 API Key&#xff0c;跑一个请求。可真实项目里&#xff0c;最容易出问题的往往不是模型能力&#xff0c;而是配置管理。本地、测试、预发布、生产环境混在一起&#xff0c;会让排错和账单复盘都…

作者头像 李华