Sort a linked list using insertion sort.
不需要额外空间,只需要一个辅助头节点,遍历链表,保存当前节点的后继节点,找到当前节点应该插入到新链表的什么位置,在新链表里做插入操作,再取原来保存的后继节点继续遍历下去。
public class Solution {
public static ListNode insertionSortList(ListNode head)
{
if (head == null || head.next == null)
return head;
ListNode dummy = new ListNode(Integer.MIN_VALUE);
ListNode node = head;
while (node != null)
{
ListNode find = dummy;
while (find.next != null && find.next.val < node.val)
find = find.next;
ListNode nodenext=node.next;
node.next=find.next;
find.next=node;
node=nodenext;
}
return dummy.next;
}
}
本文介绍了一种使用插入排序算法对链表进行排序的方法。该方法通过遍历链表,保存当前节点的后继节点,并将当前节点插入到已排序部分的适当位置。此过程不使用额外的空间,仅通过一个辅助头节点实现。
314

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



