Insertion Sort List
Total Accepted: 2832 Total Submissions: 11108 My SubmissionsSort a linked list using insertion sort.
public class Solution {
public ListNode insertionSortList(ListNode head) {
if (head == null) {
return null;
}
ListNode p1 = head.next;
head.next = null;
while (p1 != null) {
ListNode prev = null;
ListNode p2 = head;
while (p2!=null && p2 != p1 && p2.val < p1.val) {
prev = p2;
p2 = p2.next;
}
ListNode next = p1.next;
if(p2 == null){
prev.next = p1;
p1.next = null;
}else if (prev == null) {// head
p1.next = head;
head = p1;
}else {
p1.next = prev.next;
prev.next = p1;
}
p1 = next;
}
return head;
}
}
本文介绍了一种使用插入排序算法对链表进行排序的方法。通过遍历链表并将每个节点插入到已排序部分的适当位置来实现排序过程。代码示例展示了如何在Java中实现这一算法。

被折叠的 条评论
为什么被折叠?



