zoukankan      html  css  js  c++  java
  • 147.Insertion Sort List---链表排序(直接插入)

    题目链接

    题目大意:对链表进行插入排序。

    解法:直接插入排序。代码如下(耗时40ms):

     1     public ListNode insertionSortList(ListNode head) {
     2         ListNode first = new ListNode(0);
     3         ListNode pre = first, cur = head, post = null;
     4         while(cur != null) {
     5             //保存cur.next,因为要遍历当前结点,下一次就要遍历当前结点的下一个结点,所以在这次遍历完之后需要重新赋值cur=post
     6             post = cur.next;
     7             //寻找可以插入的结点位置
     8             while(pre.next != null && pre.next.val < cur.val) {
     9                 pre = pre.next;
    10             }
    11             //找到之后,将cur结点插入在pre和pre.next之间
    12             cur.next = pre.next;
    13             pre.next = cur;
    14             //下一次pre再从头开始找可插入的结点位置,所以要置为开始头节点
    15             pre = first;
    16             //下一次对cur.next结点进行排序,所以要将cur置回
    17             cur = post;
    18         }
    19         return first.next;
    20     }
    View Code
  • 相关阅读:
    前端UI框架
    Knowledge
    Microsoft SQL Server
    ASP.NET MVC
    将博客搬至CSDN
    python中的数据类型
    python基础知识
    接口和抽象类的区别
    面向对象的四大特征
    数据结构学习笔记
  • 原文地址:https://www.cnblogs.com/cing/p/8714983.html
Copyright © 2011-2022 走看看