【Leetcode刷题篇 】leetcode147 对链表进行插入排序
发布日期:2021-06-29 15:33:52 浏览次数:3 分类:技术文章

本文共 780 字,大约阅读时间需要 2 分钟。

对链表进行插入排序。

在这里插入图片描述

插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。

每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。

插入排序算法:

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

示例 1:

输入: 4->2->1->3
输出: 1->2->3->4

示例 2:

输入: -1->5->3->4->0
输出: -1->0->3->4->5

public ListNode insertionSortList(ListNode head) {
// 链表 if(head==null||head.next==null){
return head; } ListNode dummy = new ListNode(-1); dummy.next = head; while(head!=null&&head.next!=null){
// 先找到没排好序的 if(head.val<=head.next.val){
head = head.next; continue; } // 然后对其找前后 ListNode pre = dummy; while(pre.next.val

转载地址:https://codingchaozhang.blog.csdn.net/article/details/109901239 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Leetcode刷题篇】leetcode148 排序链表
下一篇:Java中arraylist和数组的相互转换

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月30日 03时27分42秒