题解 | #单链表的排序#

单链表的排序

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-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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