https://oj.leetcode.com/problems/insertion-sort-list/

链表实现插入排序

首先插入排序是指:

a b c d e g m 对b也就是第二个位置选做元素num开始遍历n-1次

对每个num,找到从第0个位置开始,它应该待的位置,把它插入进去。

对于链表来说,首先new一个 dummy 节点,这样比较方便对 head的操作 dummy->next = head。

然后从head->next为第二个元素,也就是从它开始遍历处理

每一次处理中从 dummy->next作为开始,因为 head 可能已经换位置了.

记录当前处理的位置的上一个位置,这样如果需要把这个点插入到前面,也就是从这个位置删除的话,就 before->next = num->next相当于删除了。

同时为了插入,即在合适的位置插入,需要记录要插入的上一个位置 num->next = pointer, before_should->next = num,相当于插入了。

 struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
}; class Solution {
public:
ListNode *insertionSortList(ListNode *head) {
if(head == NULL)
return NULL; ListNode *dummy = new ListNode(-);
dummy->next = head;
ListNode *before = head;
ListNode *before_bigger = dummy; for(ListNode *num = head->next; num!=NULL; num = num->next)
{
ListNode *point = NULL;
bool flag = false;
before_bigger = dummy;
for(point = dummy->next; point!= num; point=point->next)
{
if(point->val > num->val)
{
flag = true;
break;
}
before_bigger = before_bigger->next;
} //need insert
if(flag)
{
before->next = num->next;
before_bigger->next = num;
num->next = point;
num = before;
}
else
{
before = before->next;
}
}
return dummy->next;
}
};

LeetCode OJ-- Insertion Sort List **的更多相关文章

  1. [Leetcode Week16]Insertion Sort List

    Insertion Sort List 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/insertion-sort-list/description/ ...

  2. leetcode 【 Insertion Sort List 】 python 实现

    题目: Sort a linked list using insertion sort. 代码:oj测试通过 Runtime: 860 ms # Definition for singly-linke ...

  3. [LeetCode] 147. Insertion Sort List 链表插入排序

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

  4. 【leetcode】Insertion Sort List (middle)

    Sort a linked list using insertion sort. 思路: 用插入排序对链表排序.插入排序是指每次在一个排好序的链表中插入一个新的值. 注意:把排好序的部分和未排序的部分 ...

  5. Java for LeetCode 147 Insertion Sort List

    Sort a linked list using insertion sort. 解题思路: 插入排序,JAVA实现如下: public ListNode insertionSortList(List ...

  6. leetcode 147. Insertion Sort List ----- java

    Sort a linked list using insertion sort. 插入排序. /** * Definition for singly-linked list. * public cla ...

  7. leetcode:Insertion Sort List

    Sort a linked list using insertion sort. 分析:此题要求在链表上实现插入排序. 思路:插入排序是一种O(n^2)复杂度的算法,基本想法就是每次循环找到一个元素在 ...

  8. [LeetCode] 147. Insertion Sort List 解题思路

    Sort a linked list using insertion sort. 问题:实现单向链表的插入排序. 这是比较常规的一个算法题目. 从左往右扫列表,每次将指针的下一个元素插入前面已排好序的 ...

  9. leetcode 名单 Insertion Sort List

    Insertion Sort List Total Accepted: 24444 Total Submissions: 96639My Submissions Sort a linked list ...

  10. LeetCode 147. Insertion Sort List 链表插入排序 C++/Java

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

随机推荐

  1. spring boot 设置tomcat post参数限制

    今天传图片,用的base64字符串,POST方法,前端传送的时候总是莫名其妙的崩溃,去网上搜了半天,以为是文件大小被限制了,但是我这个是字符串接收,不是文件接收,于是又继续搜,原来post本身没有参数 ...

  2. eeeeeeeeeee

    http://58.241.123.38/hot.cdn.baidupcs.com/file/91623e76f776475da9c3223cdac861f0?xcode=68983c005f6e3c ...

  3. 教你如何在 Javascript 文件里使用 .Net MVC Razor 语法

    摘录 文章主要是介绍了通过一个第三方类库RazorJS,实现Javascript 文件里使用 .Net MVC Razor 语法,很巧妙,推荐给大家 相信大家都试过在一个 View 里嵌套使用 jav ...

  4. TCP/IP网络编程之多进程服务端(一)

    进程概念及应用 我们知道,监听套接字会有一个等待队列,里面存放着不同客户端的连接请求,如果有一百个客户端,每个客户端的请求处理是0.5s,第一个客户端当然不会不满,但第一百个客户端就会有相当大的意见了 ...

  5. c++实验5

    设计并实现一个机器宠物类MachinePets #include <iostream> #include <string> using namespace std; class ...

  6. MongoDB快速入门学习笔记1 windows安装MongoDB

    1.安装MongoDB 从MongoDB官网上下载MongoDB,我下载的版本是64位的3.2.6.下载完以后直接安装,我的安装目录是D:\work\MongoDB. 2.配置MongoDB的环境变量 ...

  7. 零基础学习 Python 之字符串

    初识字符串 维基百科对于字符串的定义式:字符串是由零个或者多个字符组成的有限串行.你之前学会敲的第一行 print 代码里的 "Hello World",就是一个字符串.字符串的本 ...

  8. Spring框架的AOP

    Spring学习笔记(四) 本文目录 1 AOP的介绍 2 Spring的AspectJ实现AOP(annotation) 3 Spring的AspectJ实现AOP (XML) Spring文档ht ...

  9. Behavior trees for AI: How they work

    http://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php ...

  10. Vue2.0 - 生命周期

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...