牛客題霸 單鏈表的選擇排序 C++題解/答案
阿新 • • 發佈:2020-11-04
題目描述
給定一個無序單鏈表,實現單鏈表的選擇排序(按升序排序)。
題解:
不可能手寫排序,這輩子不可能手寫排序。。
基礎的連結串列操作,將連結串列內的資料存到vector內,然後用sort排序,再將vector內的資料存會陣列即可
程式碼:
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ class Solution { public: /** * * @param head ListNode類 the head node * @return ListNode類 */ ListNode* sortInList(ListNode* head) { if(!head||!head->next)return head; vector<int>vec; ListNode牛客題霸 單鏈表的選擇排序 C++題解/答案 * p=head; while(p!=NULL) { vec.push_back(p->val); p=p->next; } sort(vec.begin(),vec.end()); p=head; int k=0; while(p!=NULL) { p->val=vec[k]; k++; p=p->next; } return head; } };