您的位置:首页 > 其它

LeetCode 147. Insertion Sort List插入排序链表的高效简单解法

2016-07-12 10:04 489 查看
Sort a linked list using insertion sort.

ListNode* insertionSortList(ListNode* head) {
if (!head||!head->next) return head;
ListNode preHead(0),*pre=&preHead;
preHead.next=head;
ListNode* cur = head;
while (cur) {
if (cur -> next && cur -> next -> val < cur -> val) {
while (pre -> next && pre -> next -> val < cur -> next -> val)
pre = pre -> next;
/* Insert cur -> next after pre.*/
ListNode* temp = pre -> next;
pre -> next = cur -> next;
cur -> next = cur -> next -> next;
pre -> next -> next = temp;
// Move pre back
pre = &preHead;
}
else cur = cur -> next;
}
return preHead.next;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  插入排序 leetcode