LeetCode OJ-- Sort List **@

來源:互聯網
上載者:User

標籤:style   blog   color   使用   io   for   div   amp   

鏈表排序,要求使用 O(nlgn) 時間,常量空間。

使用歸併的思路

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *findMid(ListNode *head)    {        ListNode *mid;        ListNode *fast = head->next;        ListNode *slow = head;        while(fast && fast->next)        {            fast = fast->next;            fast = fast->next;            slow = slow->next;        }        mid = slow;        return mid;    }    ListNode *sortList(ListNode *head) {        if(head == NULL || head->next == NULL)            return head;        ListNode *tmp = findMid(head);        ListNode *right = sortList(tmp->next);        tmp->next = NULL;        ListNode *left = sortList(head);                ListNode *newHead = new ListNode(-1);        newHead->next = merge(left,right);        return newHead->next;    }    ListNode *merge(ListNode *left, ListNode *right)    {        ListNode *dummy = new ListNode(-1);        for(ListNode *p = dummy; left!=NULL || right!= NULL; p = p->next)        {            int leftVal = left == NULL? INT_MAX:left->val;            int rightVal = right == NULL?INT_MAX:right->val;            if(leftVal <= rightVal)            {                p->next = left;                left = left->next;            }            else            {                p->next = right;                right = right->next;            }        }        return dummy->next;    }};

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.