题意:给出一个未排序好的单链表,用插入排序来实现排序
代码如下:
class Solution
{
public ListNode insertionSortList(ListNode head)
{
if (null == head || null == head.next) return head;
ListNode dummy = new ListNode(0), outer = head;
dummy.next = head;
while (outer != null && outer.next != null)
{
ListNode inner = dummy;
while (inner != outer)
{
if (inner.next.val > outer.next.val)
{
ListNode tmp = inner.next;
inner.next = outer.next;
outer.next = outer.next.next;
inner.next.next = tmp;
break;
}
inner = inner.next;
}
if (inner == outer) outer = outer.next;
}
return dummy.next;
}
}
本文介绍了一种使用插入排序算法对单链表进行排序的方法。通过定义一个虚拟头节点,遍历链表并将每个元素插入到正确的位置,最终得到一个升序排列的链表。

268

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



