• 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
  • 相关阅读:
    Docker Get Started VI
    Docker Get Started V
    Docker Get Started III
    Docker Get Started IV
    Docker Get Started II
    Docker Get Started I
    贝叶斯公式
    LRU缓存
    二进制中1的个数
    2.准备工作之Gradle
  • 原文地址:https://www.cnblogs.com/cing/p/8714983.html
Copyright © 2020-2023  润新知