码迷,mamicode.com
首页 > 其他好文 > 详细

147. Insertion Sort List

时间:2017-02-15 00:38:53      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:table   ott   ace   over   ant   ima   color   attach   sort   

  • Total Accepted: 92484
  • Total Submissions: 288998
  • Difficulty: Medium
  • Contributors: Admin

Sort a linked list using insertion sort.

分析



按照传统的插入方法,对list进行排序 56ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* insertionSortList(ListNode* head) {
        ListNode * curi = head, * curj = head;
        ListNode dummy(INT_MIN);
        dummy.next = NULL;
        while(curi != NULL){
            curj = &dummy;
            ListNode * node = curi;
            curi = curi->next;
            while(curj != NULL){
                if(curj->next == NULL || curj->val<= node->val && curj->next->val > node->val){
                    ListNode * tmp = curj->next;
                    curj->next = node;
                    node->next = tmp;
                    break;
                }
                curj = curj->next;
            }
        }
        return dummy.next;
    }
};

将list的数值,赋值倒vector<int>中,然后排序结束,再依次赋值回去 19ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* insertionSortList(ListNode* head) {
        if(head == NULL) return head;
        vector<int> list;
        ListNode * h = head;
        while(h != NULL){
            list.push_back(h->val);
            h = h->next;
        }
        sort(list.begin(), list.end());
         
        h = head;
        for(auto val: list){
            h->val = val;
            h = h->next;
        }
        return head;
    }
};




147. Insertion Sort List

标签:table   ott   ace   over   ant   ima   color   attach   sort   

原文地址:http://www.cnblogs.com/zhxshseu/p/dad1866a95b38dcae0414c24f4c185cb.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!