insertion Sort List (链表的插入排序) leecode java
逻辑简单,代码难写,基础不劳,leecode写注释不能出现中文,太麻烦,我写了大量注释,链表问题最重要的就是你那个指针式干啥的
提交地址https://oj.leetcode.com/problems/insertion-sort-list/
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode insertionSortList(ListNode head) {
if(head==null) return head;
ListNode h=new ListNode(-1000000); //加入头结点方面,特别适合头结点不断改变的情况,c++要释放掉,java直接返回头的next就可
h.next=head;
ListNode cur=head.next; //cur 保存当前处理的节点
head.next=null; //别忘了,新链表的尾巴值为空
while(cur!=null)
{
ListNode nextNode=cur.next; //保存下一个要处理的点,因为cur会被插入的新链表中,所以保存,然后赋给cur(最后一句) ListNode l=h.next;
ListNode pre=h;
while(l!=null) //找到合适的插入位置,找pre地址
{
if(l.val<=cur.val)
{
pre=l;
l=l.next;
}
else
{
break;
}
} //insert into the list
cur.next=pre.next;
pre.next=cur; cur=nextNode; } return h.next; } }
insertion Sort List (链表的插入排序) leecode java的更多相关文章
- Insertion Sort List——链表的插入排序
Sort a linked list using insertion sort. 这道题跟 Sort List 类似,要求在链表上实现一种排序算法,这道题是指定实现插入排序.插入排序是一种O(n^2) ...
- LeetCode 147. Insertion Sort List 链表插入排序 C++/Java
Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...
- [LeetCode] Insertion Sort List 链表插入排序
Sort a linked list using insertion sort. 链表的插入排序实现原理很简单,就是一个元素一个元素的从原链表中取出来,然后按顺序插入到新链表中,时间复杂度为O(n2) ...
- [LeetCode] 147. Insertion Sort List 链表插入排序
Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...
- 147 Insertion Sort List 链表插入排序
用插入排序对链表进行排序. 详见:https://leetcode.com/problems/insertion-sort-list/description/ Java实现: 链表的插入排序实现原理很 ...
- 【数据结构】算法 LinkList (Insertion Sort List 链表插入排序)
将一个单链表进行处理后,所得结果为一有序链表 Solution: 将原始链表逐个查询,插入新链表,在插入的同时对链表进行排序.时间复杂度O(n*n) public ListNode insertion ...
- [LeetCode]147. Insertion Sort List链表排序
插入排序的基本思想 把排好的放在一个新的变量中,每次拿出新的,排进去 这个新的变量要有超前节点,因为第一个节点可能会有变动 public ListNode insertionSortList(List ...
- Java for LeetCode 147 Insertion Sort List
Sort a linked list using insertion sort. 解题思路: 插入排序,JAVA实现如下: public ListNode insertionSortList(List ...
- insertion sort list (使用插入排序给链表排序)
Sort a linked list using insertion sort. 对于数组的插入排序,可以参看排序算法入门之插入排序(java实现),遍历每个元素,然后相当于把每个元素插入到前面已经排 ...
随机推荐
- 注意WPF中绑定使用的是引用类型
绑定(Binding)是WPF提供的一个非常方便的特性,它可以方便的实现一个WPF的MVVM结构. 既可以实现数据驱动UI变化,也可以做到End-user在UI上的修改实现的反映到数据上. 但是有一点 ...
- C#并行和多线程编程_(1)认识Parallel
Parallel: 英 [ˈpærəlel] 美 [ˈpærəˌlɛl] ,并联的,并行的. 随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性 ...
- 银联SDK
最近在开发一个app,需要调用银联的sdk控件,银联提供的demo可以正常运行,但是自己的程序却怎么都编译不通过,到底有哪些需要注意的呢?? 具体的有可能会出现哪些错误我就不列举了,我只是提下有哪些需 ...
- iOS+JSPatch在线修改app功能-b
什么是热更新? 举个例子,你的app上架了,但是突然想添加个小功能,那么你有两种方法 第一种方法:在原生代码中修改源代码,然后提交到appStore,这个过程真是很漫长...虽然最近我提交的都是一两天 ...
- poj 1348 Computing (四个数的加减乘除四则运算)
http://poj.org/problem?id=1348 Computing Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- js实现方法的链式调用
假如这里有三个方法:person.unmerried();person.process();person.married();在jQuery中通常的写法是:person.unmerried().pro ...
- portal、portlet、portlet容器三个概念
什么是portal Portlet规范中是这样定义portal的: A portal is a web based application that –commonly- provides perso ...
- range([start], stop[, step]):产生一个序列,默认从0开始
range([start], stop[, step]):产生一个序列,默认从0开始 >>> l = range(10) >>> l [0, 1, 2, 3, 4, ...
- Burp Suite教程(英文版)
In this article, we are going to see another powerful framework that is used widely in pen-testing. ...
- Ubuntu下与菜单和图标相关的几个文件夹
转自UBUNTU下与菜单和图标相关的几个文件夹 /usr/share/icons 系统图标文件夹 /usr/share/applications 系统菜单文件夹,要在左上角的应用程序菜单中添加一项 ...