zoukankan      html  css  js  c++  java
  • leetcode insertionSortList 对链表进行插入排序

    描述:

    Sort a linked list using insertion sort.

    使用插入排序对一个链表进行排序

    普通的插入排序,时间复杂度O(n^2)

    class Solution {
    public:
        ListNode * insertionSortList(ListNode * head) {
            ListNode dummy(0);
            ListNode * cur = head;
            ListNode * pre;
            while(cur){
                //记录链表的下一个结点,用于cur后移
                ListNode * next = cur->next;
                pre = &dummy;
                //跳过小于cur->val的结点
                while(pre->next && pre->next->val < cur->val)
                    pre = pre->next;
                //将cur插入pre->next 前
                cur->next = pre->next;
                pre->next = cur;
                cur = next;
            }
            return dummy.next;
        }
    };
    
    转载请保留原文链接及作者
    本文标题:
    文章作者: LepeCoder
    发布时间:
    原始链接:
  • 相关阅读:
    定位及CSS常见属性
    浮动及清浮动的方法
    C语言II博客作业04
    C语言II—作业03
    C语言II—作业02
    C语言II博客作业01
    期末总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/leetcode-insertionSortList.html
Copyright © 2011-2022 走看看