您的位置:首页 > 编程语言 > Java开发

LeetCode-147. Insertion Sort List (JAVA)链表插入排序

2017-04-23 21:54 1241 查看

147. Insertion Sort List

Sort a linked list using insertion sort.

用插入排序方法对链表进行排序。可以构建一个临时的链表,然后将待排序的链表的每一个节点插入到临时链表中

// 插入排序
public ListNode insertionSortList(ListNode head) {
ListNode dummy = new ListNode(0);
ListNode pre = dummy;
ListNode cur = head;
while (cur != null) {
pre = dummy;
// 从伪头结点的下一个结点开始,(注意判空)
// 让pre指向小于cur.val的最大结点(升序)
while (pre.next != null
&& pre.next.val < cur.val) {

pre = pre.next;
}
// next暂存cur的下一个结点
ListNode next = cur.next;
// 把cur连接在pre后面
// cur.next指向pre.next
cur.next = pre.next;
pre.next = cur;
cur = next;
}
return dummy.next;
}


总结;

伪头结点的使用

链表结点的插入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息