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
    发布时间:
    原始链接:
  • 相关阅读:
    微信开发之注册公众号(二)
    我开通个人博客了~~~~
    微信开发之启用开发者模式(三)
    float浮动属性
    数组的定义与特点
    块级元素和行内元素
    对于if判断和switch选择的入门理解
    Form表单
    不知名的作业
    自我介绍
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/leetcode-insertionSortList.html
Copyright © 2011-2022 走看看