题解 | #单链表的排序#
单链表的排序
http://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
思路
- 原链表,挨个push到vector中;
- vector利用sort排序;
- 利用vector新建链表。
代码
class Solution { public: /** * * @param head ListNode类 the head node * @return ListNode类 */ ListNode* sortInList(ListNode* head) { vector<int> vec; ListNode* cur = head; // 1.构建vector while(cur) { vec.push_back(cur->val); cur = cur->next; } // 2.vector排序 sort(vec.begin(), vec.end()); // 3.构建链表 ListNode* dummy = new ListNode(0); ListNode* res = new ListNode(0); dummy->next = res; for(int i : vec) { res->next = new ListNode(i); res = res->next; } res->next = nullptr; return dummy->next->next; } };