思路
简单思路,非最优。
- 链表每个结点值都扔到优先级队列里去。
 - 新建结点的值为
pq.poll() 
想偷懒不想写排序算法,又不想调Arrays.sort(),才写出了这样的代码,就当练练PriorityQueue,纯属娱乐;-)
实现
import java.util.*;
public class Solution {
    public ListNode sortInList (ListNode head) {
        PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> a - b);
        ListNode cur = head;
        while(cur != null) {
            pq.add(cur.val);
            cur = cur.next;
        }
        ListNode res = new ListNode(-1);
        cur = res;
        while(!pq.isEmpty()) {
            cur.next = new ListNode(pq.poll());
            cur = cur.next;
        }
        return res.next;
    }
}

京公网安备 11010502036488号