您的位置:首页 > 编程语言 > C语言/C++

leetcode_c++:链表:Insertion Sort List(147)

2016-07-18 14:03 591 查看
Sort a linked list using insertion sort.

O(n^2)

ListNode *insertionSortList(ListNode *head) {
if(head == NULL) return head;
ListNode *p = new ListNode(-1);
p->next = head;
ListNode *pre = head;
ListNode *cur = pre->next;
while(cur){

if(cur->val >= pre->val){
pre = cur;
cur = cur->next;
}else{
ListNode *insertPre = p;
ListNode *insertCur = p->next;
while(insertCur->val < cur->val){
insertPre = insertCur;
insertCur = insertCur->next;
}
pre->next = cur->next;
cur->next = insertCur;
insertPre->next = cur;
cur = pre->next;
}

}
head = p->next;
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: