package com.snnu;
import java.util.Random;
/**
* Created by torch on 2017-06-03.
*/
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class SortList {
public static void main(String[] args) {
ListNode root = new ListNode(1);
int len = 5;
Random random = new Random();
ListNode traverse = root;
for (int i = 0; i < len; i++) {
int val = random.nextInt(100);
System.out.print(val + " ");
traverse.next = new ListNode(val);
traverse = traverse.next;
}
System.out.println();
root.next = new SortList().insertionSortList(root.next);
print(root);
}
// private static void print(ListNode root) {
// while (root.next != null){
// System.out.print(root.next.val + " ");
// root = root.next;
// }
// System.out.println();
// }
public ListNode insertionSortList(ListNode head) {
if(head == null) return null;
ListNode firstNode = new ListNode(Integer.MIN_VALUE);
ListNode beforeHead = new ListNode(-1);
beforeHead.next = head;
ListNode traverseUnsortedList;
ListNode i = head;
do{
ListNode last = firstNode;
ListNode traverseSortedList = firstNode.next;
traverseUnsortedList = i;
boolean insertIntoMiddle = false;
while (traverseSortedList!= null){
if(traverseUnsortedList.val <= traverseSortedList.val){
last.next = traverseUnsortedList;
i = traverseUnsortedList.next;
traverseUnsortedList.next = traverseSortedList;
insertIntoMiddle = true;
break;
}else {
last = traverseSortedList;
traverseSortedList = traverseSortedList.next;
}
}
if(!insertIntoMiddle){
last.next = traverseUnsortedList;
i = traverseUnsortedList.next;
traverseUnsortedList.next = null;
}
}while (i != null);
return firstNode.next;
}
}
对链表排序
最新推荐文章于 2023-03-10 12:55:18 发布