题解 | #单链表的排序#

单链表的排序

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
#include <queue>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 the head node
     * @return ListNode类
     */
     struct cmp{
      bool operator()(ListNode* node1,ListNode* node2){
          return node1->val>node2->val;
      }
     };
    ListNode* sortInList(ListNode* head) {
       priority_queue<ListNode*,vector<ListNode*>,cmp>pq;
       while(head){
        pq.push(head);
        head=head->next;
       }
       ListNode* list=new ListNode(-1);
       ListNode* pre=list;
       while(!pq.empty()){
        list->next=pq.top();
        list=list->next;
        list->next = nullptr;//防止形成循环队列
        pq.pop();
        cout<<1<<endl;
       }
     return pre->next;
    }
};

使用优先级队列要注意将当前节点的下一个节点的地址信息置空,防止形成循环链表

全部评论

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司7个岗位
点赞 评论 收藏
分享
代码飞升_不回私信人...:啊喂笨蛋算法为什么写查找,线程池怎么放计网上去了,写动态规划真的不会被狠狠地制裁吗oi
点赞 评论 收藏
分享
前段时间投boss,实在没绷住,就发出来吧
测开小登的自我救赎:这种就别较真了,感觉应该是那种吃上了学历贬值的时代红利感觉自己也能找一堆92硕士的边角料小公司吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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