题解 | #单链表的排序#

单链表的排序

http://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08

sort

将结点存到vector中,利用sort函数进行排序,排序后重新连接各节点即可

C++代码:

class Solution {
public:
    ListNode* sortInList(ListNode* head) {
        vector<ListNode *> a;
        while (head) {
            a.push_back(head);
            head = head->next;
        }
        sort(a.begin(), a.end(), cmp);
        for (int i = 0; i < a.size() - 1; i++) {
            a[i]->next = a[i + 1];
        }
        a[a.size() - 1]->next = NULL;
        return a[0];
    }
    static bool cmp (ListNode *a, ListNode *b) {
        return a->val < b->val;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:31
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:25
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
炫哥_:为什么都读硕士了?项目还是网上的项目(真心发问)
最后再改一次简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务