首页 > 代码库 > Leetcode: Insertion Sort List
Leetcode: Insertion Sort List
Sort a linked list using insertion sort.
分析:insertion sort是将当前元素插入到已经排好序的元素的适当位置,时间复杂度为O(n^2)。
class Solution {public: ListNode *insertionSortList(ListNode *head) { if(head == NULL || head->next == NULL) return head; ListNode dummy(-1); dummy.next = head; for(ListNode *prevp = head, *p = head->next; p; p = prevp->next){ //it‘s worth noting that q starts from dummy.next not head ListNode *prevq = &dummy, *q = dummy.next; while( q != p && q->val <= p->val){ prevq = q; q = q->next; } if(q != p){ prevp->next = p->next; p->next = q; prevq->next = p; }else{ prevp = p; } } return dummy.next; }};
Leetcode: Insertion Sort List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。