lintcode-easy-Insertion Sort List
Sort a linked list using insertion sort.
Example
Given 1->3->2->0->null
, return 0->1->2->3->null
.
思路也比较直接,insertion sort,要注意的就是操作linkedlist的一些问题
/*** Definition for ListNode.* public class ListNode {* int val;* ListNode next;* ListNode(int val) {* this.val = val;* this.next = null;* }* }*/ public class Solution {/*** @param head: The first node of linked list.* @return: The head of linked list.*/public ListNode insertionSortList(ListNode head) {// write your code hereif(head == null || head.next == null)return head;ListNode fakehead = new ListNode(0);fakehead.next = head;ListNode prev = head;ListNode curr = head.next;while(curr != null){if(curr.val > prev.val){prev = curr;curr = curr.next;}else{ListNode p = fakehead;while(p != prev && p.next.val < curr.val)p = p.next;prev.next = curr.next;curr.next = p.next;p.next = curr;curr = prev.next;}}return fakehead.next;} }
转载于:https://www.cnblogs.com/goblinengineer/p/5217197.html
lintcode-easy-Insertion Sort List相关推荐
- 173. Insertion Sort List【LintCode by java】
Description Sort a linked list using insertion sort. Example Given 1->3->2->0->null, ret ...
- [Leetcode] Insertion Sort List
Sort a linked list using insertion sort. 虽然算法很简单,但是链表操作起来实正是烦啊,特别要注意各种边界条件. 1 /** 2 * Definition for ...
- leetcode day2 -- Sort List Insertion Sort List
1.Sort List Sort a linked list in O(n log n) time using constant space complexity. 分析:对链表排序不是第一次见,但是 ...
- [Leetcode]147. Insertion Sort List
Sort a linked list using insertion sort. 链表的插入排序 思路,递归到链表尾,然后循环插入: 1 /** 2 * Definition for singly-l ...
- LeetCode 147. Insertion Sort List 链表插入排序 C++/Java
LeetCode 147. Insertion Sort List 链表插入排序 C++/Java Sort a linked list using insertion sort. A graphic ...
- Java实现插入排序及其优化 insertion sort
本文带来八大排序算法之插入排序. 插入排序(Insertion Sort)属于内部排序算法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的. 插入排序基本思想: 把n个待排序的元 ...
- python实现排序算法_python实现·十大排序算法之插入排序(Insertion Sort)
简介 插入排序(Insertion Sort)是一种简单直观的排序算法.它的工作原理是:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入. 算法实现步骤 从第一个元素开 ...
- c++Insertion Sort插入排序的实现算法(附完整源码)
C++Insertion Sort插入排序的实现算法 C++Insertion Sort插入排序的实现算法完整源码(定义,实现,main函数测试) C++Insertion Sort插入排序的实现算法 ...
- C语言插入排序Insertion Sort算法(附完整源码)
插入排序Insertion Sort算法 插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 插入排序Insertion Sort算法的完整源码(定义,实现,main函 ...
- C语言以递归实现插入排序Insertion Sort算法(附完整源码)
以递归实现插入排序Insertion Sort算法 以递归实现插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 以递归实现插入排序Insertion Sort算法的完 ...
最新文章
- [原创] Neo.Geo 视频帧浏览器开发日志
- 学生选课数据库SQL语句练习题——成绩表
- 小小树微博制作记录笔记(一)
- memchache的数据类型_memcache详解
- ansible 简单使用
- github (远端建立分支....配置见github 官网配置)
- 晶振噪声及杂散_石英晶体振荡器(简称晶振)介绍
- mysql 建表结构_MySQL学习系列之二——创建表及对表结构的基本操作
- Java代码格式化工具
- java jni 生成_利用javah技术生成jni接口的详细步骤 | 学步园
- 2017年上半年软件设计师考试真题及答案(上午+下午)免费
- leetcode寻找重复数
- c语言程序设计的删除函数,详解C语言中的rename()函数和remove()函数的使用方法
- 麻省理工大学公开课笔记:算法导论(二)——课程简介及算法分析
- android n进入分屏代码分析_Android分屏多窗口的实践代码
- RT-Thread的CPU使用率计算
- 64 SUSE 下GCC 4.8.2 编译的 skipping incompatible 问题
- 《C++入门经典(第4版)》之C++编程总结
- kurento 6.14.0文档翻译第九章 编写Kurento应用程序
- C语言 16进制字符串转16进制数组 函数示例