insertionSortList
2019独角兽企业重金招聘Python工程师标准>>>
public static ListNode insertionSortList(ListNode head) {if(head == null || head.next == null){return head;}ListNode firstNode = head;int index = 0;while(firstNode != null){index++;firstNode = firstNode.next;}firstNode = head;ListNode[] listNodeArray = new ListNode[index];int k = 0 ;while(firstNode != null){listNodeArray[k] = firstNode;firstNode = firstNode.next;k++;}firstNode = head;int i = 0;for(i = 0 ; i < listNodeArray.length - 1 ; i++){ListNode tmpNode = listNodeArray[i];int minNext = i;for(int j = i + 1 ; j < listNodeArray.length ; j++){if(tmpNode.val > listNodeArray[j].val){//System.out.println("2:" + listNodeArray[j].val);minNext = j;tmpNode = listNodeArray[j];}}tmpNode = listNodeArray[i];listNodeArray[i] = listNodeArray[minNext];listNodeArray[minNext] = tmpNode; if(i > 0){listNodeArray[i-1].next = listNodeArray[i];}}if(i <= listNodeArray.length -1){listNodeArray[i-1].next = listNodeArray[i];}listNodeArray[ listNodeArray.length -1].next = null;//System.out.println(listNodeArray[0].val);if(listNodeArray.length > 1){
// for(int i = 1 ; i < listNodeArray.length ; i++){
// listNodeArray[i-1].next = listNodeArray[i];
//
// }
// listNodeArray[ listNodeArray.length -1].next = null;
// firstNode = listNodeArray[0];
// while(firstNode != null){
// System.out.println(firstNode.val);
// firstNode = firstNode.next;
// }return listNodeArray[0];}else{return listNodeArray[0];}
// //head = listNodeArray[k - 1];
// System.out.println("test " + k + " = " + listNodeArray.length + " last: " + listNodeArray[k - 1].val);
// while(firstNode != null){
// System.out.println(firstNode.val);
// firstNode = firstNode.next;
// }
// return firstNode;}
转载于:https://my.oschina.net/LosersAFC/blog/226166
insertionSortList相关推荐
- LeetCode之 insertion-sort-list insertion-sort-list
尝试着刷刷一些经典LeetCode题练练手感,随手做了两道看起来不起眼但还是需要一些细节的题: 1. 题目描述 Given a binary tree, find its minimum depth. ...
- insertion-sort-list——链表、插入排序、链表插入
Sort a linked list using insertion sort. PS:需要考虑left为head且只有一个数时,此时left->==NULL,若right<left则应更 ...
- Leetcode每日一题:147.insertion-sort-list(对链表进行插入排序)
思路:因为链表的特性,插入排序无法从当前元素往前遍历,所以这里直接从头开始查找插入位置,分头部插入.中间插入和尾部插入: ListNode *insertionSortList(ListNode *h ...
- 冒泡链表排序java_链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)...
以下排序算法的正确性都可以在LeetCode的链表排序这一题检测.本文用到的链表结构如下(排序算法都是传入链表头指针作为参数,返回排序后的头指针) struct ListNode { int val; ...
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
这篇文章分析一下链表的各种排序方法. 以下排序算法的正确性都可以在LeetCode的链表排序这一题检测.本文用到的链表结构如下(排序算法都是传入链表头指针作为参数,返回排序后的头指针) struct ...
- 搞懂单链表常见面试题
搞懂单链表常见面试题 Hello 继上次的 搞懂基本排序算法,这个一星期,我总结了,我所学习和思考的单链表基础知识和常见面试题,这些题有的来自 <剑指 offer> ,有的来自<程序 ...
- 插入排序 链表 java_Java实现 LeetCode 147 对链表进行插入排序
147. 对链表进行插入排序 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将 ...
- 在单链表写入一组数据代码_链表常见操作和15道常见面试题
什么是单链表 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer),简单来说链表并不像数组那样 ...
- LeetCode Insertion Sort List(单链表插入排序)
题意:给出一个未排序好的单链表,用插入排序来实现排序 代码如下: class Solution {public ListNode insertionSortList(ListNode head){if ...
最新文章
- linux gcc 安装目录,Linux安装其他版本GCC的方法
- ffmpeg3.4 yuv编码为h264
- python_循环删除list中的元素,有坑啊!
- 原神创意工坊工具箱2.0源码-小程序前端源码
- filco蓝牙不好用_「原创」开箱 FILCO 斐尔可 蓝牙双模键盘+更换键帽
- 800*480bmp图片显示
- SDRAM控制器——仲裁模块的实现
- 实现MySQL读写分离---maxscale代理服务器配置(详解)
- c语言求圆锥的表面积和体积_c语言问题,输入圆锥的半径和高,得出表面积和体积。请问程序该如何改....
- 中控,中控系统,中控会议室
- workman与php通信
- 查询pytorch文档的实用方法
- vSphere Client无法连接vSphere server解决一例
- 机器学习算法之聚类算法拓展:Mini Batch K-Means算法
- 大明战神戚继光带给程序员的启示
- java北京招聘_JAVA应届毕业生去北京找工作,薪资大约多少?
- css中的position和float属性
- 参加2020全国大学生数学建模竞赛有感
- 将大文件夹下的小文件夹全部统一命名为拼音
- 装机U盘制作教程(图文并茂)
热门文章
- SQLServer中Case的用法
- const、static、内部链接属性和外部链接属性整理
- ARC在Release与Debug模式中内存释放的坑
- Oracle Database 11.2.0.1(静默安装)
- [CLR via C#]25. 线程基础
- Yii框架官方指南系列14——基础知识:开发流程
- python脚本 通过rsa private key 生成 publickey
- JS可以写操作系统?Windows 95被装进Electron App
- 此为太阳历的技术支持博客
- I.MX6 Android 5.1 纯Linux、U-Boot编译